【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はサブルーチン外で参照可能とわかる
前の記事
この記事が気に入ったらサポートをしてみませんか?