見出し画像

【TTL】はじめてのTTLマクロ 2 TTLマクロの変数のスコープを調べた話

結論

結論:すべてグローバル変数のような挙動

はじめに

ttlマクロを実装していくと、変数や自作関数(サブルーチン)を利用することになります。自作関数を使うとなると気になるのは変数のスコープです。なので調べてみました。
※ここまで読んで「スコープ?自作関数?」となる方は、いったん「TTLマクロにおいて、変数はどこかで作成されたら、いつでもどこでも変更/読込が可能」と思ってください。

コード

str1 = "str1-test"
str2 = "test"

call funcSetVal
messagebox str2 'debug-002'    ; "str2-test"
messagebox str3 'debug-003'    ; "str3-test"
end  ; マクロ終了

:funcSetVal
  messagebox str1 'debug-001'  ; "str1-test"
  str2 = "str2-test"
  str3 = "str3-test"
return

結果

debug-001で"str1-test"と表示されたので、
サブルーチン外で作られた変数str1はサブルーチン内で参照可能と分かる。

debug-002で"str2-test"と表示されたので、
サブルーチン外で作られた変数str2はサブルーチン内で上書きしたあと、上書きされた情報をサブルーチン外で参照可能と分かる

debug-003で"str3-test"と表示されたので、
サブルーチン内で作られた変数str3はサブルーチン外で参照可能とわかる

前の記事


この記事が気に入ったらサポートをしてみませんか?