embed_var_save
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| embed_var_save [2024/07/12 11:36] – machiaworx | embed_var_save [2024/07/27 04:32] (現在) – machiaworx | ||
|---|---|---|---|
| 行 84: | 行 84: | ||
| ただこのおかげでMiniScriptがプログラム本体に影響なく処理を行えるシステムになっているということではあります。 | ただこのおかげでMiniScriptがプログラム本体に影響なく処理を行えるシステムになっているということではあります。 | ||
| - | これらのグローバル変数は正確な計算はしてませんが、恐らく「次のスクリプト起動タイミング」までは有効かと思います。 | + | これらのグローバル変数について正確なウォッチはしてませんが、恐らく「次のスクリプト起動タイミング」までは有効かと思います。 |
| よって、次の実行までに別の場所に保存する必要があります。 | よって、次の実行までに別の場所に保存する必要があります。 | ||
| - | ※正確に言うと変数のIndexが作られたら以降のプログラム実行後も恐らくそのままではあるんですが、グローバル変数である関係上いつ更新されるか分からないので早い段階で別の場所に保存しておく必要はあると思います。 | + | ※正確に言うと変数のIndexが作られたら以降のプログラム実行後もそのままではあるんですが、グローバル変数である関係上いつ更新されるか分からないので早い段階で別の場所に保存しておく必要はあると思います。 |
| ==== 2.保存した変数をキープしておく ==== | ==== 2.保存した変数をキープしておく ==== | ||
| 行 104: | 行 105: | ||
| とは言うものの一度Contextを起動しないとうまく初期化ができないので、ソースコードが空の状態で起動して、上記の処理を行うことになります。 | とは言うものの一度Contextを起動しないとうまく初期化ができないので、ソースコードが空の状態で起動して、上記の処理を行うことになります。 | ||
| - | === 3.未使用Interpreter上から変数を参照する === | + | ==== 3.未使用Interpreter上から変数を参照する |
| これでいつでも変数を参照できるようにはなりましたが、先程の話の通り利用中のInterpreter上だといつ更新されるかわかりません。 | これでいつでも変数を参照できるようにはなりましたが、先程の話の通り利用中のInterpreter上だといつ更新されるかわかりません。 | ||
| 行 114: | 行 115: | ||
| 上記は、変数を作成し、未使用InterpreterクラスからIndexerで変数にアクセスし取得する処理です。\\ | 上記は、変数を作成し、未使用InterpreterクラスからIndexerで変数にアクセスし取得する処理です。\\ | ||
| ややこしいですがここまででようやく変数をContext外で保存、ないしはアクセスすることができるようになりました。 | ややこしいですがここまででようやく変数をContext外で保存、ないしはアクセスすることができるようになりました。 | ||
| + | |||
| + | ちなみに、特定のインデクサでアクセスできる事自体は「誰も管理していません」。\\ | ||
| + | すなわち何も登録していない場合、アクセスした時点で内部で例外的なアクセス扱いになります。(つまりエラー)\\ | ||
| + | よって、このインデクサで変数を登録しているよ!という管理が必要になります。 | ||
| + | |||
| + | 自分の実装では、別途変数を設けてこのインデクサにアクセスしていることを変数を見て確認した上でアクセスできるようにしました。 | ||
| ==== 最後に ==== | ==== 最後に ==== | ||
| サンプルプロジェクトも用意したほうがいいかなと思い始めてます。説明がややこしいので。 | サンプルプロジェクトも用意したほうがいいかなと思い始めてます。説明がややこしいので。 | ||
embed_var_save.1720751785.txt.gz · 最終更新: 2024/07/12 11:36 by machiaworx