【问题标题】:Int with no value (set int to no value)无值的 int(将 int 设置为无值)
【发布时间】:2016-06-12 10:31:04
【问题描述】:

我想创建一个没有值的 Int(一个已经存在的变量)。如果我这样做;

number = Int()

那么它的值仍然是0。我什么都不想要,一个不存在的价值。

【问题讨论】:

标签: swift swift2 integer int


【解决方案1】:

实际上,每种类型都可以设置为空值,即nil

要创建一个可以设置为nil的变量,你需要在最后显式地写一个?!(后面会讲到区别)的类型名称。

例如,如果您想要一个可以设置为nilInt,请声明一个类型名称为的变量:

var myInt: Int

然后你添加一个?:

var myInt: Int?

然后,您可以将myInt 设置为nil,或者您想要的任何值:

myInt = nil
myInt = 0

这个类型名称-?表示法在 Swift 中称为“可选类型”。

不仅可以在变量和常量中使用可选项,还可以在方法/函数签名中使用:

func myUselessFunc(value: Int?) -> Int? {
    return value
}

好的,那么!? 有什么区别?

! 的作用类似于 Java 和 C# 中的引用类型。而? 就像! 的更安全版本。

假设有一个可选的Int,称为myInt。你想访问它的description

如果myInt 被声明为let myInt: Int?

myInt?.description

如果myInt 被声明为let myInt: Int!

myInt.description

注意,使用问号,每次需要访问myInt的属性/方法时,都需要在末尾添加一个问号。这称为“解开可选类型”。

带有! 后缀的类型称为“隐式展开的可选类型”。使用这些类型时,您不需要打开它。但是,如果myIntnil,就会报错! ? 类型不会发生这种情况,因为如果 myIntnil,整​​个表达式将只返回 nil

这是我认为您在第一次使用可选项时应该注意的一点。

【讨论】:

    【解决方案2】:

    您需要一个可选的Int。通过提出一个问题'?标记您将该变量初始化为 nil。

    var number: Int?
    

    更多详情请参考此链接 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 2016-06-26
      相关资源
      最近更新 更多