无法在Kotlin中打印多个布尔值

我开始用kotlin语言

fun main (args:Array){ var flag1:Boolean= true //Explicit declaration var flag2: =false //Implicit declaration println(flag2 + "and " + flag1) println(flag1) println(flag2) 

}

在上面的代码中,我声明了布尔型显式隐式声明的2种types

对于上面的代码,我会说预计下面的输出:

 false and true true false 

但我越来越跟随erroe: 由IDE给出的错误

任何人都可以解释我去哪里错了?

对于那个编译器错误,改变这个:

 println(flag2 + "and " + flag1) 

对此:

 println("$flag2 and $flag1") 

Kotlin是强types语言,不能在String和Booleantypes上使用加号运算符。

但是你可以使用字符串插值,在字符串文字中使用$操作符。

你也可以使用布尔types的重载加运算符进行编译,方法如下:

 operator fun Boolean.plus(s: String): String { return this.toString() + s } 

在Java中,当您将字符串与任何types的对象连接时,它会执行字符串转换 。 例如,

 System.out.println(true + " and false"); //Output: true and false 

在Kotlin中,字符串转换不存在。 或者,您可以使用字符串模板 。

 println("$flag2 and $flag1") 

另外,由于Kotlin的String类提供了接受任何types参数的plus(Any?)函数,所以下面的代码行仍然有效:

 println("$flag2 and " + flag1) 

这是关于这个设计的讨论 。