zig:打印函数中的 if 语句产生错误的输出

zig: if statement in print function produces wrong output

我有这个代码:

const std = @import("std");
const print = std.debug.print;
pub fn main() void {
    var n: u8 = 1;
    print("{s}\n", .{if (n == 0) "0" else "1"});
}

但它并没有达到我的要求。输出为“0”。

谁能告诉我发生了什么事? 非常感谢。

Zig 还不稳定,在特殊的第 1 阶段(当前的引导编译器)中不会稳定,因为目的是删除它并用第 2 阶段生成的 c 代码替换引导编译器(作为新的引导编译器) .

与此相反,stage2(目前正在开发中)会正确处理这些事情。

这是一个已知的错误编译。

请先搜索上游,在 https://github.com/ziglang/zig/issues 标签下 stage1 和错误编译。