Variables 无法在Kotlin中打印多个布尔值
我从科特林语开始Variables 无法在Kotlin中打印多个布尔值,variables,types,kotlin,Variables,Types,Kotlin,我从科特林语开始 fun main (args:Array<String>){ var flag1:Boolean= true //Explicit declaration var flag2: =false //Implicit declaration println(flag2 + "and " + flag1) println(flag1) println(flag2) 但我得到了以下错误:- 有人能解释我哪里出错了吗?
fun main (args:Array<String>){
var flag1:Boolean= true //Explicit declaration
var flag2: =false //Implicit declaration
println(flag2 + "and " + flag1)
println(flag1)
println(flag2)
但我得到了以下错误:-
有人能解释我哪里出错了吗?对于编译器错误,请更改以下内容:
println(flag2 + "and " + flag1)
为此:
println("$flag2 and $flag1")
Kotlin是强类型语言,不能对字符串和布尔类型使用加号运算符
但是您可以使用字符串插值,在字符串文本中使用$operator
通过添加以下内容,还可以使用布尔类型上的重载加号运算符对其进行编译:
operator fun Boolean.plus(s: String): String {
return this.toString() + s
}
在Java中,当您将字符串与任何类型的对象连接在一起时,它会执行。比如说,
System.out.println(true + " and false"); //Output: true and false
在Kotlin中,字符串转换不存在。或者,您可以使用
println("$flag2 and $flag1")
此外,由于Kotlin的String类提供了plus(Any?
函数,该函数接收任何类型作为参数,因此以下代码行仍然有效:
println("$flag2 and " + flag1)
这里有一个关于这个设计的例子。我很确定你必须明确地将布尔值字符串化。这不是PHP,你知道:)错误消息告诉你的是kotlin找不到这样的运算符重载
+
,其中左部分是布尔值,右部分是字符串。另外var flag2:=false
是无效代码,它甚至不会编译。除了上面的注释,你应该使用字符串插值,不连接。或println(“+flag2+”和“+flag1”)
println("$flag2 and " + flag1)