例如我有如下功能:
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 );