2017-06-02 6 views
0

通常、整数を含む文字列をBoolの値に変換する必要があります。ルールはtrueまたはゼロ以外の値を取得することです。しかし、無効な数字はfalseになります。 stringValueが空であるならば、Int()機能がnilを返すため、動作しないこと、しかしSwift 3:数値文字列をBoolに変換し、無効な値に対してfalseを返す

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

、それは不平等である:文字列は常に有効な数字だったら

、コードは次のようになります0にすると、結果はが必要なときにtrueになります。

とは何ですか? Swift 3でこの問題を解決する方法はありますか?私はif句で余分な行を避けるのが好きです。

注:文字列にtrueの値が「1」しかない場合は、== 1のテストが答えになります。しかし、私はtrueの他の非ゼロ値も許可したい。言い換えれば、0以外の有効な数字をtrueにすることが好きです。

答えて

3

この場合、Nil-Coalescing Operatorを使用できます。

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

ああ、うわー。私はそのオペレータについて知らなかった。私は本当に努力をして、スワイフ3の仕様全体を読むべきではありません:)(やるべきことがたくさんありますが、少し時間がかかります!) –

関連する問題