【发布时间】:2015-05-21 21:30:12
【问题描述】:
在 Swift 中是否可以有一个可变参数是可选的?我尝试了两种有意义的方法,但都没有编译:
func myFunc(queryFormat: String?...) {
}
或
func myFunc(queryFormat: String...?) {
}
注意:第一个实现在技术上可以编译,但如果您尝试解包:
if let queryFormatUnwrapped = queryFormat {
...
}
你得到一个错误Bound value in a conditional binding must be of Optional Type,这表明它把它当作一个可选字符串数组而不是一个可选字符串数组(这有点傻)。
【问题讨论】:
-
你会检查数组是否为空吗?
-
-
正如@Tobias 建议的那样,没有办法使 整个参数包 可选。那意味着什么?用户可以提供零个或多个以数组形式到达的参数。该数组如何/为什么是可选的?另一方面,参数它们自己可以是可选的。
标签: ios swift optional-parameters variadic-functions