[英]Optionals: What's the difference between [String?] and [String]?
本质上[String?]
和[String]?
区别[String]?
如果我定义了像var myStringArray:[String?]
这样的数组,则不需要使用!
打开它,但是当我将数组定义为var myStringArray:[String]?
我必须使用强制打开它!
我在这里想念什么?
[String?]
是可选字符串的数组。 数组不能为nil,但字符串可以。
[String]?
是一个可选的字符串数组。 数组可以为nil,但字符串不能。
对于[String?]
您不必解开数组,而必须解开数组中的每个字符串。 对于[String]?
您需要在使用数组之前解开数组,而不需要解开数组中的字符串。
let arrayOfOptionalStrings: [String?] = [ "a", nil, "c" ]
for string in arrayOfOptionalStrings {
if let string = string {
print(string)
}
}
var optionalArrayOfStrings: [String]? = [ "a", "b", "c" ]
if let array = optionalArrayOfStrings {
for string in array {
print(string)
}
}
optionalArrayOfStrings = nil
[String?]
是可选字符串的数组 。 数组本身不是可选的,但包含可选的。
[String]?
是String的可选数组 。 数组本身是一个Optional,包含非Optional。
为[字符串]? 您正在创建一个可选的字符串数组,该数组是可选的。
对于[String?],您正在创建一个字符串可选数组,每个索引值都是一个可选字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.