0
這是一個後續問題要Scala constructor overload?我想的是,輸入等覆蓋的限制形式運行的情況下類的構造函數,而不是重載的構造器:隨訪約斯卡拉構造oveloading
abstract class Expr
case class RegExpr(regex : Regex) extends Expr {
override def this(regex : Regex) = {
if (regex.toString contains "*")
throw new Exception("Restricted class of regular expressions: cannot contain Kleene star.")
else if (regex.toString contains "|")
throw new Exception("Restricted class of regular expressions: cannot contain disjunction.")
else this(regex)
}
}
這不編譯;我已經嘗試了幾次不同的迭代,但他們都回到編譯器告訴我它期望'this',但是'if'被找到。我如何得到我想要的行爲?
太好了,謝謝!這似乎改善了事情。 – etosch
'require(!regex.toString.contains(「*」),「...」)'是更慣用的參數測試。 – senia
此外,最後的其他是不必要的。 – yakshaver