構造体の作成およびクローン作成用イベント ハンドラ

構造体の作成および構造体クローン作成時に呼び出される構造体定義には、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)