[']

データとしての実行コード2



コンパイルモードで、ワードのXT値を取るには、[']を使います。
:  ....  [']  SomeWord ..... ;

ここで定義されているワードが実行されたとき、このポイントでSomeWordのXTがスタックにおかれます。言葉で言えば、[']は、次に置かれたワードのxtの値をスタック上に積むためのコードをコンパイルするワードです。

ワード定義の中で普通のティック ' を使うと、思わぬ動作をすることになるでしょう。(あえてコンパイルモードで普通のティックを使う意味はありますが、かなり高度な技巧となります。)(ティックについてはXTを参照)

XTの利用例を模式的に示しておきましょう。
'  null  VALUE  MyXT
:  MyWord  MyXT EXECUTE  ;
 .... 
:  MyWord1  ....  ;
:  MyWord2  ....  ;
:  SettoWord1  [']  MyWord1  ->  MyXT  ;
:  SettoWord2  [']  MyWord2  ->  MyXT  ;
これらをコンパイルした後にMyWordを実行しても何もしません(何もしないワードnullが実行される。)。次に、SettoWord1を実行した後にMyWordを実行すると、MyWord1が実行されます。さらに、SettoWord2を実行した後にMyWordを実行すると、MyWord2が実行されます。


関連項目:






最終更新:2019年06月18日 17:16