scala while循环赋值

etw*_*tw3 7 java scala

我正在尝试将一些Java代码移植到Scala中:

while ((j=f('blah'))>=0) ...
Run Code Online (Sandbox Code Playgroud)

错误:"值> =不是单位成员"

这不可能吗?

Rex*_*err 19

分配()在Scala中返回(单位).但这没关系,因为你可以把代码块放在任何地方.你需要这个:

while ({ j=f("blah"); j } >= 0) ...
Run Code Online (Sandbox Code Playgroud)

  • 其原因可以在这里找到:[Scala分配评估单位的动机是什么,而不是分配的值?](http://stackoverflow.com/questions/1998724/what-is-the-motivation-for-阶赋值-评估到单元,而高于所述-v)中 (6认同)