記事
· 2021年4月9日 1m read

関数・メソッドの引数に可変長引数を渡すことができるかどうか

これは InterSystems FAQ サイトの記事です。

引数名の後ろに ... をつけることで可変の引数を渡すことができます。

ObjectScript では、配列を使って任意の数の引数を渡すことができます。

例文は以下の通りです。
例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。
 

Class TEST.ARGTEST1 Extends %RegisteredObject
{
ClassMethod NewMethod1(Arg... As %String) As %Boolean
{
 kill ^a
 merge ^a = Arg
}
}

 

ターミナルで実行した結果は以下の通りです。

USER>DO ##class(TEST.ARGTEST1).NewMethod1(1,2,3,4,5)
USER>ZWRITE ^a
^a=5
^a(1)=1
^a(2)=2
^a(3)=3
^a(4)=4
^a(5)=5
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください