何时在Scala中使用val,def和lazy val?

时间:2012-11-08 15:15:38

标签: scala

  

可能重复:
  why use def and val in Scala or vice versa

显然,当存在参数时,如果值取决于可变对象,或者值取决于特征成员,则必须使用def。如果表达式可能抛出异常,则无法使用val。但如果情况不是这样呢?更具体地说,是否有理由在这种情况下使用def?是否最好使用val(当表达式不会抛出异常时)和lazy val(当表达式抛出异常时)?

例如:

class FifthElement(seq: Seq[Element]) {
  def hasFifthElement = seq.length > 5 // is it better to use val than def?
  def fifthElement = seq(5) // is it better to use lazy val than def?
}

0 个答案:

没有答案