構造体の作成および構造体のクローン作成時に呼び出される構造体定義には、2 つのイベント ハンドラを実装することができます。
構造体イベント ハンドラは常に private です。
これらのイベント ハンドラを使用して、追加の初期化タスクを実行したり、デバッグ用に変数の初期値を出力したりすることができます。
構文
on create do <expression>
このハンドラは、構造体のインスタンスが作成されたときに呼び出されます。
on clone do <expression>
このハンドラは、構造体インスタンスのコピーが作成されたときに作成されます。
例 - 定義と作成: |
struct foo2 ( A = 1, B = 3, fn error = throw "ZZZ", on create do format "Struct Created: %\n" this, on clone do format "Struct Cloned: %\n" this ) f = foo2 () |
結果: |
#Struct:foo2( a:<data>; Public, b:<data>; Public, error:<fn>; Public) Struct Created: (foo2 a:1 b:3) (foo2 a:1 b:3) |
例(続き) - クローン: |
f2 = copy f |
結果: |
Struct Cloned: (foo2 a:1 b:3) (foo2 a:1 b:3) |