Scala でコンパイル時の定数をどのように宣言しますか? C#で宣言する場合
const int myConst = 5 * 5;
myConst はリテラル 25 としてインライン化されます。
final val myConst = 5 * 5
同等または他のメカニズム/構文はありますか?
Scala でコンパイル時の定数をどのように宣言しますか? C#で宣言する場合
const int myConst = 5 * 5;
myConst はリテラル 25 としてインライン化されます。
final val myConst = 5 * 5
同等または他のメカニズム/構文はありますか?
はい、Daniel の警告final val
とともに、適切な構文です。ただし、適切な Scala スタイルでは、定数は最初の文字が大文字のキャメルケースにする必要があります。
パターン マッチングで定数を使用する場合は、大文字で始めることが重要です。最初の文字は、Scala コンパイラーが定数パターンと変数パターンを区別する方法です。Programming in Scalaのセクション 15.2 を参照してください。
val
またはシングルトン オブジェクトが大文字で始まらない場合、それを一致パターンとして使用するには、バックティック ( ``
)で囲む必要があります。
x match {
case Something => // tries to match against a value named Something
case `other` => // tries to match against a value named other
case other => // binds match value to a variable named other
}
final val
する方法です。コンパイラは、可能であればそれをコンパイル時の定数にします。
「可能であれば」の意味の詳細については、以下のダニエルのコメントをお読みください。