函数与方法

函数

函数 加法(x: 整数, y: 整数) : 整数 {
    返回 x + y;
}

// 无返回值省略返回类型
函数 打招呼(名字: 字符串) {
    IO.打印行("你好," + 名字);
}

函数作为参数(高阶函数)

函数 应用两次(f: 函数(整数): 整数, x: 整数) : 整数 {
    返回 f(f(x));
}

函数指针类型写作 函数(参数类型...): 返回类型。回调签名固定,注意返回类型要一致。

方法(Go 风格)

方法是接收者写在函数名前括号里的函数,不是 方法 类型.名()

类型 点 {
    x: 浮点数,
    y: 浮点数,
}

函数 (自己 点) 模长平方() : 浮点数 {
    返回 自己.x * 自己.x + 自己.y * 自己.y;
}

函数 入口() {
    变量 p = (点 { x: 3.0, y: 4.0 });
    IO.打印行(浮点数转字符串(p.模长平方()));  // 25.0
}
接收者名可以用 自己。结构体字面量里每个字段单独赋值,别把多个字段都从同一个参数取(已知 codegen 踩坑)。