在Zig中循环整数范围

3
这种 while 循环是否是在 Zig 中遍历整数范围的惯用方式?
var i: i32 = 5;
while (i<10): (i+=1) {
    std.debug.print("{}\n", .{i});
}

我首先尝试了类似Python的

for (5..10) |i| {
    // ....

但是那样并不起作用。

2个回答

4
你提出的方法从0.11.0版本开始是有效的(下一个版本)。与此同时,我曾经使用Ali的答案的一个版本。
for ([_]u32{0} ** 6) |_, i| {
    std.debug.print("{}\n", .{i});
}

2

zig没有整数范围循环的概念,但是有一个hack方法,由nektro创建了一个随机的[]void切片,因此您可以使用for循环进行迭代。

const std = @import("std");

fn range(len: usize) []const void {
    return @as([*]void, undefined)[0..len];
}

for (range(10)) |_, i| {
    std.debug.print("{d}\n", .{i});
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接