def
これは SO の他の投稿で以前に議論されたことを知っており、との使用の基本的な違いを理解していますval
。def
メソッドの定義とval
不変参照に使用されます。この質問をすることで私が達成しようとしているのは、もっと何かがあるかどうかを理解することですdef
。と交換可能に使用できますval
か?
最近、次のコードを試してみましたが、現在の理解def
が十分かどうか確信が持てません:
scala> def i: Int = 3
i: Int
scala> i
res2: Int = 3
興味がありますが、これは と同等val i = 3
ですか?
それから私はこれを試しました:
scala> i()
<console>:9: error: Int does not take parameters
i()
のセマンティクスの理解をテストするためにこれを行いましたdef
。今私が知りたいi
のは、メソッドがいつなのか、なぜ Scala が「...パラメータを取らない」と不平を言うのですか?
次に、次のことを試しました。
scala> def i(): Int = 3
i: ()Int
scala> i()
res4: Int = 3
今回は、Scala はそれi
がメソッドであることに同意しているようです。変数を宣言して初期化するために、交換可能def
の代わりに使用できますか?val