簡體   English   中英

如何在 Swift 中檢查泛型類型是否為零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM