Scala从book中隐含的setter和getter示例会产生编译错误

时间:2013-02-19 17:13:23

标签: scala

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?代码中是否有错误?或者有一种新方法吗?

1 个答案:

答案 0 :(得分:14)

书中的代码实际上不包含_=之间的空格字符:

enter image description here