颠倒中缀布尔结果kotlin
我有一个中缀函数,假设是这样的:
class test{ infix fun equalsTen(value:Int):Boolean = value.equals(10) }
显然这不是真正的function,只是一个例子。
另外可以说,我有这个function:
fun doSomething(value: Int){ val testClazz = test() if(testClazz equalsTen value){//line 3 //do something } }
我怎样才能扭转第3行的情况?
现在基本上是:
if(testClazz.equalsTen(value)){...}
我怎样才能改变它:
if(!testClazz.equalsTen(value)){...}
保持中缀expression?
你可以用括号括起来,并在外面使用not
操作符:
if (!(testClazz equalsTen value)) { /* ... */ }
如果你想让中infix
函数更清晰,你可以创建另一个中infix
函数来反转它:
infix fun notEqualsTen(value:Int) = !equalsTen(value)
并以这种方式使用它:
if (testClazz notEqualsTen value) { /* ... */ }
没有语法糖,你必须这样做:
if(!(testClazz equalsTen value))