转载自泊学(boxueio.com)

这一节,我们分享一个非常简单的特性,SE-0199。它给Bool类型添加了一个方法toggle,来切换Bool变量的值。

var result = true result.toggle() // false 

在上面的代码中,result.toggle()会对result的值取反,然后用结果去覆盖result。就像这样:result = !result。然而,为什么要添加这个方法呢?

对我们演示的这个例子来说,当然toggle没什么意义。但很多时候,我们要访问的Bool值会“藏”的很深。例如:

myObj.prop1.prop2.boolProp

现在,我们要把它的值取反,就得这样:

myObj.prop1.prop2.boolProp = !myObj.prop1.prop2.boolProp

显然,在=两边重复这个很长的表达式不仅不美观,而且容易犯错。这种情况,使用:

myObj.prop1.prop2.boolProp.toggle()

就美观和简洁多了。

返回
顶部