0

在 Coursera 的Scala课程(讲座 1.4,大约 3 分钟)中,Martin Odersky说表达式true && e总是返回e(e 是任何对象)。并且表达式false || e也返回e。他解释说,有时并不总是评估最后一个表达式。

但是当我运行这些表达式时,我得到error: type mismatch. 因为true && 5我得到found: Int(5); required: Boolean

Scala 最近是否在发展,或者我做错了什么?

4

1 回答 1

6

e代表布尔表达式

Predicate: a boolean expression to be evaluated e.g. (x >= 4), (x != 0), etc

https://sites.google.com/a/stonybrook.edu/functional-programming-scala/lecture-1-4


来自Scala 参考书,第 6.16 段条件表达式,给出:

if (e1) e2 else e3

条件 e1 应符合布尔类型。then-part e2 和 else-part e3 都应该符合条件表达式的预期类型。条件表达式的类型是 e2 和 e3 类型的弱最小上界(第 3.5.3 节)。

于 2013-09-30T07:18:11.967 回答