"[String!]" 和 "[String]!" 有什么区别?

3

我对Swift还比较新,想知道[String!][String]!之间的区别。两者都是非可选的?但[String]!表示未初始化时为nil,而[String!]则不是这样?

3个回答

8

[String!]是一组隐式解包的String数组

[String]!是一个隐式解包的String数组

这意味着第一个数组可以包含nil值,但它本身不能为nil。第二个数组本身可能为nil,但其内容始终不为空。


@Losiowaty 哈哈,是的,差不多 :) - luk2302

6

[字符串!]

这是一个包含隐式解包的字符串数组。

这意味着在这个数组的每个元素中,你可能会找到一个Stringnil

let list0: [String!] = ["Hello", nil, "world", nil]

[字符串]!

这是一个包含隐式解析数组(Implicitly Unwrapped Array)字符串

这意味着在一个声明为此类型的变量中,你可以找到 nil 或者一个每个元素都是有效的 字符串 数组。

let list1: [String]! = nil
let list2: [String]! = ["Hello", "world"]

2

[String!] - 这是一个非可选的数组,其中包含可选的Strings
[String]! - 这是一个可选的数组,其中包含非可选的Strings


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接