没有值的Int(将Int设置为没有值)



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

number = Int()

则它仍然具有值CCD_ 1。我什么都不想要,一个不存在的价值。

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

要创建一个可以设置为nil的变量,您需要在类型名称的末尾显式地写上?!(稍后我将讨论其区别)。

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

var myInt: Int

然后添加一个?:

var myInt: Int?

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

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

当你第一次使用期权时,我认为你应该注意这一点。

您需要一个可选的Int。提出一个问题"?"用nil标记您初始化的可变变量。

var number: Int?

有关详细信息,请参阅此链接https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

最新更新