函数定义与C类似,包含返回类型、函数名、参数列表和代码块。
当参数列表中参数的类型相同可以使用逗号分隔,而无需单独声明类型,其它类型参数使用分号分隔。
int test(int a, b; string c) {
if (a > b) {
printf(c);
}
}
函数支持重载,参数类型或数量不同、返回类型不同都将得到支持。
void print(basis b) {
printf("basis: { i: %s, j: %s, k: %s }\n", b.i, b.j, b.k);
}
void print(matrix m) {
printf("matrix: %s\n", m);
}
void print(bases b) {
printf("bases <%s> {\n", b.description);
printf(" "); print(b.m);
printf(" "); print(b.n);
printf(" "); print(b.o);
printf("}\n");
}
basis rotate(basis b; vector axis; float amount) {
matrix m = 1;
rotate(m, amount, axis);
basis result = b;
result.i *= m;
result.j *= m;
result.k *= m;
return result;
}
void rotate(basis b; vector axis; float amount) {
b = rotate(b, axis, amount);
}
也可以对函数使用function关键字以避免歧义。
function int test(int a, b; string c) {
if (a > b) {
printf(c);
}
}
要点: