作者:雨水-_-打湿我的脸_950 | 来源:互联网 | 2023-02-02 12:11
我必须将通常包含整数的字符串转换为类型的值Bool
.规则是获得true
或任何非零值.但是无效的数字应该导致false
.
如果字符串始终是有效数字,代码将如下所示:
let stringValue = "1"
let boolValue = Int(stringValue) != 0
但是,如果stringValue
为空则不起作用,因为然后Int()
函数返回nil
,并且不等于0,因此结果最终成为true
我想要的时间false
.
在Swift 3中解决这个问题的优雅方法是什么?我喜欢避免带有if
子句的额外行.
注意:如果字符串只能包含true
值"1" ,那么测试== 1
就是答案.但我也想允许其他非零值true
.换句话说,我喜欢有0以外的任何有效数字true
.
1> Nirav D..:
为此你可以使用Nil-Coalescing Operator
.
let boolValue = (Int(stringValue) ?? 0) != 0