6

Scala でコンパイル時の定数をどのように宣言しますか? C#で宣言する場合

const int myConst = 5 * 5;

myConst はリテラル 25 としてインライン化されます。

final val myConst = 5 * 5

同等または他のメカニズム/構文はありますか?

4

2 に答える 2

9

はい、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
}
于 2012-06-25T21:21:07.743 に答える
6

final valする方法です。コンパイラは、可能であればそれをコンパイル時の定数にします。

「可能であれば」の意味の詳細については、以下のダニエルのコメントをお読みください。

于 2012-06-25T18:33:52.323 に答える