【发布时间】:2011-01-01 04:58:20
【问题描述】:
Scala 赋值评估为 Unit 而不是赋值的动机是什么?
I/O 编程中的一个常见模式是这样做:
while ((bytesRead = in.read(buffer)) != -1) { ...
但这在 Scala 中是不可能的,因为...
bytesRead = in.read(buffer)
.. 返回 Unit,而不是 bytesRead 的新值。
离开函数式语言似乎是一件有趣的事情。 我想知道为什么会这样做?
【问题讨论】:
-
大卫波拉克发布了一些第一手信息,Martin Odersky 本人在他的回答中留下的评论非常赞同。我认为人们可以放心地接受波拉克的回答。
标签: scala functional-programming io assignment-operator