运维开发网

什么是Scala赋值赋值给Unit而不是赋值的动机?

运维开发网 https://www.qedev.com 2020-03-20 22:59 出处:网络 作者:运维开发网整理
什么是Scala赋值赋值给Unit而不是赋值的动机? I / O编程中的常见模式是做这样的事情: while ((bytesRead = in.read(buffer)) != -1) { ... 但是这是不可能在Scala,因为… bytesRead = in.read(buffer) ..返回单位,而不是bytesRead的新值。 看起来像一个有趣的事情,离开一种功能语言。 我想知道为什么会这
什么是Scala赋值赋值给Unit而不是赋值的动机?

I / O编程中的常见模式是做这样的事情:

while ((bytesRead = in.read(buffer)) != -1) { ...

但是这是不可能在Scala,因为…

bytesRead = in.read(buffer)

..返回单位,而不是bytesRead的新值。

看起来像一个有趣的事情,离开一种功能语言。

我想知道为什么会这样做?

我主张让赋值返回赋值而不是单位。马丁和我来回去,但他的说法是,在堆栈上放一个值,只是为了弹出它的95%的时间是浪费字节码,并对性能有负面影响。
0

精彩评论

暂无评论...
验证码 换一张
取 消