布尔扩展函数

当我尝试创建扩展function设置布尔如下真假。

Boolean.setTrue(){ this = true } Boolean.setFalse(){ this = false } 

它说预计variables 。 如何实现这一点。

你不能改变这个值,这会打破很多假设,即使你可能无法改变它的值,因为布尔variables是不变的。

更一般地说,在简化代码和使其更加复杂之间有一条细线,在这种情况下会使代码复杂化。 我会同意添加String.splitByDot()可能是有道理的,但是替代惯用代码往往只是使代码更复杂,因为你开始想知道为什么代码必须被替换。

对不起,但这没有意义。 只要使用myBool=false ,这是任何人都明白,不能得到更多的可读性。 也是Boolean不可变的 ,你正在尝试是不可能的。

我们必须小心, 不要过度使用扩展。 这是Kotlin(和其他人)提供的最大function之一,但是在某些例子中,例如试图改变一个死的简单的Boolean被分配的方式,它变得危险恕我直言(幸运的是这是不可能的)。

你不能这样做的原因是你不能在扩展function中重新分配接收器。

不可能改变布尔的值,因为它是不可变的。