我正在尝试将所有函数从python复制到swift,从检查列表中的任何nill项开始,但是我很难检查可选项.出于某种原因,我可以发送一个可选的字符串(例如字符串),即使它说它是nil,它仍然通过if语句传递,它不在函数之外.关于如何处理这种或其他方式的任何建议?谢谢!
func `all`<T>(array: [T]) -> Bool {
for item in array {
if item as Any? {
println(item) // Says Nil >.<
}
var test: T? = item
if test {
println("Broken") // Prints broken :(
}
}
return true
}
var t: String?
all([t])
Run Code Online (Sandbox Code Playgroud)
我不清楚你到底想测试什么,但这也许会有所帮助。
函数的参数应该是一个可选数组[T?]
直接将元素与 进行比较也可能是有益的nil。比较可以抽象为一个闭包,就像filter函数使用的那样。
func all<T>(array: [T?]) -> Bool {
for element in array {
if element==nil {
return false
}
}
return true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |