class Thermometer{

  var celsius: Float = _

  def fahrenheit = celsius * 9/5 + 32
  def fahrenheit_ = (f: Float) {
    celsius = (f-32)*5/9
  }

  override def toString = fahrenheit + "F/"+ celsius + "C"
}


引用的代码是本书Programming in Scala 2nd edition中的示例。尝试编译时,出现以下错误:

scalac Thermometer.scala
Thermometer.scala:6: error: not found: value f
  def fahrenheit_ = (f: Float) {
                     ^


Scala是否不再支持隐式定义的getter和setter?代码中有错误吗?还是有一种新的方法?

最佳答案

本书中的代码实际上在_=之间没有空格字符:

10-06 07:05