Swift 4:元组作为可选

see*_*ems 2 tuples swift

新来的 swift。据我了解,元组赋值运算符 '?' 元组不允许。

var optionalTuple = (String, Int)? // this isn't allowed.  
Run Code Online (Sandbox Code Playgroud)

除了将元素单独分配为可选之外,还有其他解决方法吗?

Swe*_*per 5

(String, Int)?是一个类型,而不是一个值,所以它不能放在=.

如果您还不知道,当您声明一个变量/常量时,您可以使用以下语法指定其类型:

let/var 名称:类型

所以一个可选的元组声明看起来像这样:

var optionalTuple: (String, Int)?
Run Code Online (Sandbox Code Playgroud)

另一种方法是这样的:

var optionalTuple = (String, Int)?.none
Run Code Online (Sandbox Code Playgroud)

以上两个将具有 的值nil。您还可以将其初始化为自定义值:

var optionalTuple: (String, Int)? = ("Hello", 10)
Run Code Online (Sandbox Code Playgroud)

另一种方法是:

var optionalTuple = (String, Int)?.some(("Hello", 10))
Run Code Online (Sandbox Code Playgroud)