2017-06-02 83 views
0

我必須將通常包含整數的字符串轉換爲Bool類型的值。該規則將獲得true或任何非零值。但無效號碼將導致falseSwift 3:將數字字符串轉換爲Bool,對於無效值獲取false

如果字符串總是有效號碼,代碼會是這樣:

let stringValue = "1" 
let boolValue = Int(stringValue) != 0 

然而,這並不工作,如果stringValue是空的,因爲那時Int()函數返回nil,那就是不平等爲0,因此當我想要false時結果爲true

什麼是優雅在Swift 3中解決這個問題的方法?我喜歡避免使用if子句的多餘行。

注意:如果字符串只能包含「1」的true值,則測試== 1將是答案。但是我也想允許true的其他非零值。換句話說,我喜歡有0以外的任何有效數字變成true

回答

3

因此,您可以使用Nil-Coalescing Operator

let boolValue = (Int(stringValue) ?? 0) != 0 
+1

啊,哇。我不知道那個操作員。我真的應該付出努力,閱讀整個Swift 3規範,而不是通過這樣做來學習:)(儘管如此,還有很多事情要做,只有很短的時間!) –

相關問題