3

可能重复:
为什么在 Scala 中使用 def 和 val,反之亦然

显然,当有参数时,如果值依赖于可变对象,或者值依赖于 trait 成员,则必须使用 def。如果表达式可能引发异常,则不能使用 val。但如果两者都不是呢?更具体地说,在这种情况下是否有理由使用 def ?使用 val (当表达式不会抛出异常时)和惰性 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?
}
4

0 回答 0