例如我有如下功能:
my_function = Function(
{
M_DATA = Empty(),
M_AGE = Empty()
}, {},
);
有沒有辦法我可以像這樣調用函數
my_function( M_AGE = 12, M_DATA = "Useful info");
年齡和數據可以互換,但功能能否正確捕獲?
我不這麼認為,JMP會按定義的順序捕獲參數。
如果您想對訂單保持獨立,則可以使用更複雜的數據結構作為自變量,例如關聯數組。
參見示例。BR
// function with single arguments
my_function = Function( {M_DATA = Empty(), M_AGE = Empty()},
{},
Show( M_DATA, M_AGE )
);
Print( "swapped arguments are ignored" );
my_function( M_AGE = 12, M_DATA = "Hello" );
// function with associative array AA
my_function_AA = Function( {Local_AA = Empty()},
{},
keys = Local_AA << get keys;
For( i = 1, i <= N Items( keys ), i++,
Show( keys[i], Local_AA[keys[i]] )
);
);
AA = Associative Array( {{"M_AGE", 12}, {"M_DATA", "Hello"}} );
my_function_AA( AA );