組み込みの名前空間の使用法、名前のデフォルトはここ、関数のローカル変数こんにちは、モジュールスクリプトの名前空間とそれらのスクリプト内の関数について質問があります。
私が理解しているように、Names Default to Here()がtrueであると定義された変数は、「here」名前空間に割り当てられます。 私が確信していないのは、その名前空間のスコープです。 「ここ」は常に完全なスクリプト(モジュール内など)としてスコープされますか、それともスクリプト内の個々の関数にローカルな変数を作成できますか? 関数内でローカル変数を作成する正しい方法は何ですか? 各関数で定義された変数を、完全なスクリプトではなく、その関数だけにローカルにする方法はありますか? 私が想像しているのは以下のようなものです。
//Script to define different scopes of variables<BR />Names Default to Here(1); //set variables to be scoped to this script by default<BR />a = 1;<BR />b = 2;<BR /><BR />Function1 = Function({},<BR /> Names Default to Here(1);<BR /> c = 3;<BR />);<BR /><BR />Function2 = Function({},<BR /> Names Default to Here(1);<BR /> d = 4;<BR />);@lbrickweg @jcimini
Re:組み込みの名前空間の使用法、名前のデフォルトはここ、関数のローカル変数うーん、そこのフォーマットについて申し訳ありません
//Script to define different scopes of variables
Names Default to Here(1); //set variables to be scoped to this script by default
a = 1;
b = 2;
Function1 = Function({},
Names Default to Here(1); //set variables set in Function1 to be scoped only to Function1
c = 3;
);
Function2 = Function({},
Names Default to Here(1); //set variables set in Function2 to be scoped only to Function2
d = 4;
);Re:組み込みの名前空間の使用法、名前のデフォルトはここ、関数のローカル変数Names Default To Here(1)は、その間に使用/作成されたすべての非修飾記号を意味します提出(スクリプトの実行)は同じHere名前空間になります。 したがって、単一のJSLファイルよりも幅が広くなります。 したがって、Names Default To Hereが有効になっているときにA.jslにB.jslが含まれている場合、AとBによって作成されたシンボルは両方とも同じHere名前空間で使用できます。
関数localsの場合、ローカルリストを使用する必要があります。
/* Default Local */
slow identity = Function({x}, {Default Local},
x squared = x*x; // unqualified name x squared is defaulted to function local
Sqrt(x squared)
);
/* Or list them explicitly */
slow identity = Function({x}, {x squared},
x squared = x*x; // local because we declared it above
Sqrt(x squared)
);
/* Or qualify them */
slow identity = Function({x},
local:x squared = x*x; // qualify to local explicitly
Sqrt(x squared)
);Re:組み込みの名前空間の使用法、名前のデフォルトはここ、関数のローカル変数とった! 「提出ごと」の言語は非常に役立ちます。
フォローアップとして、App Builderからさまざまなモジュールを実行する場合、.jmpappの起動時に各モジュールのスクリプトが含まれますか? または、各モジュールのスクリプトは実際には<<インスタンスの作成時に個別に送信されるため、各モジュールには独自のHere名前空間がありますか?
つまり、jmpappを使用する場合、ここでは通常、各モジュールを指しますか、それともアプリ全体を指しますか?Re:組み込みの名前空間の使用法、名前のデフォルトはここ、関数のローカル変数
@mringqui書きました:
とった! 「提出ごと」の言語は非常に役立ちます。
フォローアップとして、App Builderからさまざまなモジュールを実行する場合、.jmpappの起動時に各モジュールのスクリプトが含まれますか? または、各モジュールのスクリプトは実際には<<インスタンスの作成時に個別に送信されるため、各モジュールには独自のHere名前空間がありますか?
つまり、jmpappを使用する場合、ここでは通常、各モジュールを指しますか、それともアプリ全体を指しますか?
@EvanMcCorkle