为什么Kotlin布尔类型扩展函数返回的值与我猜测的不同?

tquggr8v  于 12个月前  发布在  Kotlin
关注(0)|答案(1)|浏览(157)

我是一个新手,正在学习Kotlin。
我认为下面的代码应该打印true,但实际上打印了false
我不知道为什么这个代码会显示“假”。
有人能帮我吗?

fun Boolean.and(it: Boolean): Boolean = true

fun main() {
    val b = true.and(false)
    println(b)
}

字符串
我正在学习Kotlin,我想知道Boolean类型的扩展函数逻辑。

qij5mzcb

qij5mzcb1#

不希望输出false的原因是您对Boolean.and(…)的定义实际上是在隐藏an already existing fun,然后使用它来代替您的定义。
使用不同的名称并获得所需的结果:

fun Boolean.logicalAnd(it: Boolean): Boolean = true

fun main() {
    val b = true.logicalAnd(false)
    println(b)
}

字符串
输出:true

相关问题