この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

変数

ローカル変数は、Java スタイルの構文で宣言されます。Java と同様、複数の変数を単一のステートメントで宣言および初期設定できます。

ローカル変数は、Java スタイルの構文で宣言されます。次に例を示します。

Java と同様、カンマ区切り形式を使用して、複数の変数を単一のステートメントで宣言および初期設定できます。次に例を示します。

Null 変数および初期値

変数は、宣言した後に値で初期化しないと null になります。null とは値がないことを意味します。null は、プリミティブ型で宣言された任意の変数に割り当てることもできます。たとえば、次のどちらのステートメントでも、変数は null に設定されます。
データ型に対するインスタンスメソッドの多くは、変数が null だと失敗します。次の例では、2 番目のステートメントが例外 (NullPointerException) を生成します。

すべての変数は、いずれかの値に割り当てられていない場合は null に初期化されます。たとえば、次の例では、i および k には値が割り当てられますが、Integer 変数 j と Boolean 変数 b は明示的に初期化されていないため、null に設定されます。

よくある間違いは、初期化されていない Boolean 変数がシステムによって false に初期化されていると想定することです。これは当てはまりません。他のすべての変数と同様に、Boolean 変数はいずれかの値に明示的に割り当てられていない場合、null になります。

メモ

変数範囲

変数はブロック内のどの場所でも定義でき、その地点から適用されます。サブブロックは、すでに親ブロックで使用されている変数名を再定義できませんが、並行ブロックでは変数名を再利用できます。次に例を示します。

大文字と小文字の区別

大文字と小文字を区別しない SOQL クエリおよび SOSL クエリとの混乱を避けるため、Apex も大文字と小文字の区別をしません。つまり、次のようになります。

  • 変数名とメソッド名では、大文字と小文字を区別しない。次に例を示します。
  • オブジェクト名と項目名への参照では、大文字と小文字を区別しない。次に例を示します。
  • SOQL および SOSL ステートメントは大文字と小文字を区別しない。次に例を示します。

sObject、SOQL、および SOSL についての詳細は、このガイドの後の方で説明します。

メモ

また、Apex は、SOQL と同じ条件セマンティックを使用します。これに基づいて、SOAP API および Salesforce ユーザーインターフェースでの比較が行われます。これらのセマンティックを使用すると、興味深い動作が発生します。たとえば、エンドユーザーが英字の「m」の前の値という条件 (値 <'m') に基づいてレポートを生成すると、結果に null 項目が返されます。この動作は合理的ですが、一般にユーザーは値を持たない項目を実際の null 値ではなく、単なる「スペース」文字とみなします。そのため、Apex では、次の表記はすべて true と評価されます。

上記の例では s < 'b' の評価は true になりますが、'b.'compareTo(s) は文字を null 値と比較しようとするため、エラーを生成します。

メモ