在抽象方法中省略返回类型,但在抽象字段中省略

时间:2013-07-09 13:19:40

标签: scala

例如,我有以下特征:

trait Some {
  def method // i can omit the return type
  val field: Some  // i can't 
}

如果省略抽象字段的类型,它会引发编译错误,但不是在方法的情况下?

1 个答案:

答案 0 :(得分:2)

简单明了。如果省略抽象方法的返回类型, 然后Scala编译器将其推断为Unit(在typer阶段之后):

abstract trait Some extends scala.AnyRef {
  def method: Unit;
  <stable> <accessor> def field: String
}