这是我代码中难以找到的一个错误,但一旦我找到它,我很惊讶编译器没有捕捉到它或理解为什么它是有效的。
val my_string =
"abc" +
"def"
"ghi"
< p >由于我错过了 "def"
后面的 +
符号,my_string
的值最终成为了 "abcdef"
。为什么编译器没有报错,"ghi"
又发生了什么?< /p >
这是我代码中难以找到的一个错误,但一旦我找到它,我很惊讶编译器没有捕捉到它或理解为什么它是有效的。
val my_string =
"abc" +
"def"
"ghi"
< p >由于我错过了 "def"
后面的 +
符号,my_string
的值最终成为了 "abcdef"
。为什么编译器没有报错,"ghi"
又发生了什么?< /p >
代码是有效的,因为"ghi"
本身就是一个有效的表达式。
如果这段代码在函数中(且没有后续语句),那么"ghi"
是该函数的返回值。否则它被忽略(就像你单独写了一行42 + 23
一样)。
"ghi"只是一种字符串(String)类型的表达式,为什么编译器要抱怨呢?
"