[英]How to check if a Generic type is nil in Swift
我正在嘗試將 all 函數從 python 復制到 swift,首先檢查列表中的任何 nill 項目,但我很難檢查可選項目。 出於某種原因,我可以發送一個可選字符串(例如字符串),即使它說它為零,它仍然通過 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])
我不清楚你到底要測試什么,但也許這會有所幫助。
函數的參數應該是一個可選數組[T?]
直接將元素與nil
進行比較也可能是有益的。 比較可以抽象為一個閉包,就像filter
函數使用的那樣。
func all<T>(array: [T?]) -> Bool {
for element in array {
if element==nil {
return false
}
}
return true
}
我知道這是舊的,但仍在尋找。 剛剛花了幾個小時尋找解決方案,我想我終於找到了。
if (item as AnyObject) is NSNull {
//value is nil
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.