Scala分配评估单元而不是分配的值的动机是什么?
I/O编程中的一个常见模式是执行以下操作:
while ((bytesRead = in.read(buffer)) != -1) { ...
Run Code Online (Sandbox Code Playgroud)
但这在Scala中是不可能的,因为......
bytesRead = in.read(buffer)
Run Code Online (Sandbox Code Playgroud)
..返回Unit,而不是bytesRead的新值.
从函数式语言中省略,似乎是一件有趣的事情.我想知道为什么这样做了?