Swift 3:将数字字符串转换为Bool,对无效值获取false

时间:2017-06-02 09:11:58

标签: swift expression

我必须将通常包含整数的字符串转换为类型b1 B1 b1 V1 b1 V2 b1 B2 b2 B3 b2 V3 b2 V4 b2 B4 的值。规则是获取Bool或任何非零值。但是无效的数字应该导致true

如果字符串始终是有效数字,则代码如下:

false

但是,如果let stringValue = "1" let boolValue = Int(stringValue) != 0 为空,则不起作用,因为stringValue函数返回Int(),并且不等于0,因此结果最终为我需要nil时才true

在Swift 3中解决此问题的优雅方式是什么?我喜欢避免使用false子句的额外行。

注意:如果字符串只能包含" 1"对于if值,测试true就是答案。但我也想允许== 1的其他非零值。换句话说,我希望0以外的任何有效数字变为true

1 个答案:

答案 0 :(得分:7)

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

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