为什么这个语法无效? IntelliJ报告的错误是在这样的上下文中仅允许表达式(第2行).我想知道是否有一些语法来解决这个问题,因为
Java在循环功能中允许这种类型的赋值.
var c: Int; while ((c = reader.read()) != 1) { }
解决方法
语法无效,因为c = reader.read()不是Kotlin中的表达式 – 这样可以防止所有的== vs = bugs.
您必须将其重写为:
while (true) { val c = reader.read() if (c == 1) break ... }