我使用从Scala的采取了一些Scala代码courers上coursera:Scala的布尔:代码段
package src.functional.week4
abstract class Boolean {
def ifThenElse[T](t: => T, e: => T): T
def && (x: => Boolean): Boolean = ifThenElse(x, false)
}
线def && (x: => Boolean): Boolean = ifThenElse(x, false)
给出了这样的编译时间错误:
类型不匹配;发现:scala.Boolean(假)要求: src.functional.week4.Boolean
这里是从视频的代码片段:
我是否需要更改代码为了编译它?
当我创建使用
object false extends Boolean {
def ifThenElse[T](t: => T, e: => t) = e
}
新的“假”的对象,收到了错误:
多个标记在该行 - 标识符预期,但“假”找到。
我正在定义与'abstract class Boolean'类相同的类中的对象。我无法创建类型为'false'的新对象,因为Eclipse IDE不允许这样做。
是的,我应该在发布问题之前观看了讲座的其余部分。谢谢。我现在宣布了一个新的'虚假'对象,但我得到一个新的错误。我不应该能够创建一个'false'类型的新对象,因为'false'是保留的?我更新了我的问题 –
Scala有重新定义保留符号的注释(主要是为了允许与没有相同保留字集合的Java进行互操作)。为了(重新)定义一个保留的符号,把它包含在反标记中(当定义_and_时引用它......有点乏味,我知道)。 –