3

を使用parseしてデータから値を抽出する場合、データをキャプチャするためにグローバルを宣言することになることがよくありcopyます。例えば、

numbers: none
rule: [ thru 5 copy numbers to 10 to end ]
parse [ 1 2 3 4 5 6 7 8 9 10 ] [ rule ]

numbersグローバルとして使用せずにこれを行う最良の方法は何でしょうか? context全体をラッパーに定義する必要がありますか、それともよりエレガントなソリューションがありますか?

4

2 に答える 2

2

コンテキスト内で変数を宣言しないと、コンテキストは機能しません

>> unset 'a
>> context [ parse "aa" [ copy a to end ]]
>> a
== "aa"

同様に、変数がローカルとして宣言されている関数内で解析ルールを使用して、変数がグローバル名前空間を汚染するのを防ぐことができます。

于 2013-05-06T23:51:58.073 に答える