hashtableマクロを利用した簡単HashTable-of定義

HashTable-ofの定義はジェネリクスを記述しないといけないので、ちょっとめんどくさいという方のために、hashtableマクロを提供します。この機能はarrayマクロと類似しています。

hashtableマクロ

このマクロは、初期値を与えると、その初期値からジェネリクスを推測し、型定義を自動的にしてくれます。

|| 従来の書き方
def x = {{HashTable-of String, int} “k1”, 1, “k2”, 2, “k3”, 3}

|| hashtableマクロ利用(Stringとintというジェネリクスを推測してくれます。)
|| 以下は上記と同等です。

def x = {hashtable “k1”, 1, “k2”, 2, “k3”, 3}

また、コンパイル時型の異なる引数が与えられた場合も、なるべく具体的な型の配列の生成を試みてくれます。以下はサンプルです。

def x = {hashtable {TextField}, 1, {PasswordField}, 2, {ComboBox}, 3}

これは{HashTable-of any, int}を返すのではなく、{HashTable-of {MultiUIValueControlFrame-of String}, int}を生成します。