没有值的int(将int设置为no value)

时间:2016-06-12 10:31:04

标签: swift swift2 integer int

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

number = Int()

然后它仍然具有值0。我什么都不想,一个不存在的价值。

2 个答案:

答案 0 :(得分:13)

每个类型实际上都可以设置为空值nil

要创建一个可以设置为nil的变量,您需要使用?!明确写出类型名称(我稍后会谈到差异) )最后。

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

var myInt: Int

然后添加?

var myInt: Int?

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

myInt = nil
myInt = 0

这个类型名称带?符号被称为"可选类型"在斯威夫特。

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

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,则会出错! ?类型不会发生这种情况,因为如果nilmyInt,则整个表达式只会返回nil

这是我认为你第一次使用选项时应注意的事情。

答案 1 :(得分:0)

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

var number: Int?

请参阅此链接以获取更多详细信息 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html