3

重複の可能性:
Scala で def と val を使用する理由、またはその逆を使用する理由

明らかに、引数がある場合、値が変更可能なオブジェクトに依存する場合、または値が特性メンバーに依存する場合、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?
}
4

0 に答える 0