函数指针(function)
function类型作为一个函数指针,类似于C++里面的(void*) func,它可以作为一个函数的对象,通过function进行传递。 我们可以通过(: function_name, function_args... :)的形式可以定义一个函数指针 并可以以(*ptr)(...)的形式进行调用。
例如:
function f = (: printf, "%s" :); // 使用 '(:' 和 ':)' 来定义,带参数
(*f)("abc"); // 输出 "abc"
function func = (: sizeof :) // 使用 '(:' 和 ':)' 来定义,不带参数
int size = func.call_local("hello world") // size = 11
当然我们可以定义自己的函数,举个例子:
maxer.gs
//计算两个数值的最大值
public int maxer(int x, int y)
{
return x > y ? x : y;
}
void test()
{
int x = 102;
int y = 32;
function fun = (: maxer :);
int ans = fun.call_local(x, y);
write(ans);
}
test();