JMPは名前の解決を使ってオブジェクト名を解釈します。適用範囲が明示されていない名前には、次の規則が順に適用されます。
1.
|
変数の後ろに1組の丸括弧 ( ) が付いている場合、関数として検索します。
|
2.
|
変数の接頭部に:スコープ演算子が付いている場合、または明示的なデータテーブルへの参照がある場合、データテーブル列またはテーブル変数として検索します。
|
3.
|
変数の接頭部に::スコープ演算子が付いている場合、グローバル変数として検索します。
|
4.
|
5.
|
7.
|
現在のスコープおよびその親スコープの中を検索します。Hereスコープに到達するまで繰り返します。
|
8.
|
Hereスコープ内の変数として検索します。
|
10.
|
スクリプトの冒頭にNames Default to Here(1)がある場合は、検索を中止します。そのスコープはローカルです。
|
13.
|
変数の接頭部に::スコープ演算子が付いている場合、グローバル変数を作成して使用します。
スクリプトの冒頭にNames Default to Here(0)がある場合は、グローバル変数を作成します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Show( :Name("体重(ポンド)") << Get As Matrix ); // "体重(ポンド)"は列名として解決される
Close( dt, NoSave );
Show( :Name("体重(ポンド)") << Get As Matrix ); // "体重(ポンド)"は解決されない
/* データテーブルを再度開く */
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Show( :Name("体重(ポンド)") << Get As Matrix ); // "体重(ポンド)"は列名として解決される
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
col = Column( dt, 5); // colはColumn( "体重(ポンド)" );
Close( dt, NoSave );
/* データテーブルを再度開く */
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Show( col << Get As Matrix ); // 最初のデータテーブルへの参照はもう存在しない