問題
変数のスコープについての正確な記述はどれですか。3つ選びなさい。
- 子ブロックは親ブロックの変数名を再利用できません。
- ブロック内の任意のポイントで変数を定義できます。
- 並列ブロックは同じ変数名を使用できます。
- 変数の値がnullの場合、子ブロックは親ブロックの変数名を再利用できます。
- 変数の値がnullの場合、静的変数はスコープを現在のブロックに制限できます。
正解
- 子ブロックは親ブロックの変数名を再利用できません。
- ブロック内の任意のポイントで変数を定義できます。
- 並列ブロックは同じ変数名を使用できます。
- 変数の値がnullの場合、子ブロックは親ブロックの変数名を再利用できます。
- 変数の値がnullの場合、静的変数はスコープを現在のブロックに制限できます。
解説
それぞれの選択肢の理由について説明します。
□ 子ブロックは親ブロックの変数名を再利用できません。
これは正解です。Apexでは、同じメソッドやクラス内で既に宣言されている変数名を再宣言することはできません。子ブロックで同じ名前を持つ新しい変数を宣言しようとすると、コンパイルエラーになります。
□ ブロック内の任意のポイントで変数を定義できます。
これは正解です。Apexでは、ブロック内の任意の位置で変数を定義することができます。ただし、変数は定義されたポイントからブロックの終わりまでの間のみ有効です。
□ 並列ブロックは同じ変数名を使用できます。
これは正解です。互いに独立したブロック(例えば異なるメソッド内や、異なるループ内など)は、同じ名前の変数をそれぞれで使用できます。これらの変数はスコープが異なるため、互いに影響しません。
□ 変数の値がnullの場合、子ブロックは親ブロックの変数名を再利用できます。
これは不正解です。変数の値が何であれ、変数名のスコープは変数の値に依存しません。null値であっても、親ブロックで宣言された変数名は子ブロックで再宣言できません。
□ 変数の値がnullの場合、静的変数はスコープを現在のブロックに制限できます。
これは不正解です。静的変数のスコープはその変数が宣言されたクラス全体に及びます。変数の値が何であれ、スコープをメソッドやブロックに制限することはできません。
次の問題へ
![](https://tysonblog-whitelabel.com/wp-content/uploads/2023/11/2021-03_Badge_SF-Certified_Platform-Developer-I_High-Res-300x294.png)
前の問題へ
![](https://tysonblog-whitelabel.com/wp-content/uploads/2023/11/2021-03_Badge_SF-Certified_Platform-Developer-I_High-Res-300x294.png)
1問目から復習する
![](https://tysonblog-whitelabel.com/wp-content/uploads/2023/11/2021-03_Badge_SF-Certified_Platform-Developer-I_High-Res-300x294.png)
コメント