这个错误通常发生在试图在需要表达式的上下文(如 println()
函数或 lambda 表达式)中尝试赋值。解决方法是将赋值移动到另一个上下文中或将其拆分为表达式和赋值语句。
例如,如果我们有以下代码:
fun main() {
val myVar = 10
println(myVar = 15) // 错误:赋值语句不是表达式,在此上下文中只允许表达式
}
我们可以通过将赋值拆分为表达式和赋值语句来修复它:
fun main() {
val myVar = 10
val myNewVar = 15 // 表达式
println(myNewVar) // 输出 15
}
或者我们可以将赋值移动到其他上下文中:
fun main() {
val myVar = 10
val myNewVar = 15 // 赋值语句
println(myVar + myNewVar) // 输出 25
}