引数がない場合、paranthesisのないメソッドを定義することができます。特殊なユースケースは、これを使用して値を取得することです。私はこれを行うか、むしろ直接価値を得るべきですか?Scalaで直接またはメソッドを使用して値を取得しますか?
ので
class Complex(real: Double, imaginary: Double) {
def re = real
def im = imaginary
override def toString() =
"" + re + (if (im < 0) "" else "+") + im + "i"
}
または
class Complex(real: Double, imaginary: Double) {
val re = real
val im = imaginary
override def toString() =
"" + re + (if (im < 0) "" else "+") + im + "i"
}
なぜこれらのdefsまたはvalsがコンストラクタargsから離れているのですか?なぜ、 'class Complex(double、val im:Double){override def toString()= ...} 'だけではないのですか? – Jesper
@Jesper:率直に言って、私はhttp:// docsから来ています。 scala-lang.org/tutorials/scala-for-java-programmers.html – Make42
このチュートリアルでは、Scalaの機能については説明していません。コンストラクタargsの前に 'val'を置くと、2番目の例と同じ効果が得られます。 – Jesper