• 欢迎光临~

Function parameters(参数) treated as constant

开发技术 开发技术 2022-10-16 次浏览
const warn = @import("std").debug.warn;

fn normal(x: i32) void {
    x += 1;
    warn("{}n", x);
}

pub fn main() void {
    var z: i32 = 12;
    normal(z);
    warn("{}n", z);
}

发现参数x为常数不可以改变

下面是andr的话

  1. 默认的变量是const, 不是常数, 他们还会添加一个错误在可以使用const的地方使用了var
  2. 可以让读代码的人知道, 参数没有被修改过
  3. 如果你需要一个可变的参数, 可以像这样使用var foo = parm
  4. 鼓励使用SSA风格的代码,zig认为这是惯用的
  5. In the case of non-scalar values, it allows zig's "direct parameter passing" to work.
  6. It matches variables that zig creates for if, while, for, etc, which are immutable "views" rather than copies (after the copy-elision-2 branch is done).
程序员灯塔
转载请注明原文链接:Function parameters(参数) treated as constant
喜欢 (0)