这是一个在我的代码中找到的相当难的错误,但是一旦我发现它,我很惊讶编译器没有抓住它或理解为什么它是有效的。
val my_string =
"abc" +
"def"
"ghi"
my_string
的价值最终为"abcdef"
,因为我在+
之后错过了"def"
符号。为什么编译器没有抱怨以及"ghi"
发生了什么?
答案 0 :(得分:10)
代码有效,因为"ghi"
本身就是一个有效的表达式。
如果这是在函数内部(并且没有其他任何内容),则"ghi"
是该函数的返回值。否则它会被忽略(就像你自己在一行上写42 + 23
一样)。
答案 1 :(得分:1)
“ghi”只是String类型的表达式,编译器为什么要抱怨?