我正在使用库瑟拉上scala程序中的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(false)必需:src.function al.Week 4。
下面是视频中的代码片段:

我需要修改代码才能编译吗?
创建新的“false”对象时,使用
object false extends Boolean {
def ifThenElse[T](t: => T, e: => t) = e
}我收到错误:
在这一行的多个标记-预期的标识符,但“假”发现。
我在与‘抽象类布尔’相同的类中定义对象。由于Eclipse不允许这样做,我无法创建一个类型为'false‘的新对象。
发布于 2013-04-17 15:51:14
您的代码(和Martin的代码)定义了一个新的Boolean,尽管它是在Scala中预定义/内置的。
您遇到的问题是,您还没有定义一个新的false来取代内置的false,并且内置的false与您重新定义的Boolean不兼容。
发布于 2013-04-17 16:29:39
由于true和false是保留词,不能重新定义,所以讲座中的代码不能编译。尝试使用True和False。
https://stackoverflow.com/questions/16064384
复制相似问题