blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

AutoHotkey_L に実装された可変長引数の例

AutoHotkey の add 関数が引数を2つしか取れないところ、以下のように設定した my_add 関数では、引数をいくつでも取れるようになる。

my_add(args*) {
    sum := 0

    for index,arg in args
        sum += arg

    return sum
}

msgbox,% my_add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
; => 55

AutoHotkey では関数のオーバーライドを認めているので、my_add 関数ではなく add 関数として定義すれば、add 関数そのものの機能を上書きできる。すなわち、add 関数の機能を拡張できるのだ。