我正在用 Zig 编写一个函数,它应该接受任意大小的多维数组。可能有限制,但我无法提前对尺寸进行硬编码。
这是一个例子:
const warn = @import("std").debug.warn;
fn printMap(map: []const [4]bool) void {
for (map) |row| {
for (row) |tile| {
warn("{}\t", .{tile});
}
warn("\n", .{});
}
}
pub fn main() !void {
const map = [_][4]bool{
[_]bool{ false, false, false, false },
[_]bool{ false, true, true, false },
[_]bool{ false, true, true, false },
[_]bool{ false, false, false, false },
};
printMap(map[0..]);
}
这会编译并运行,但如果我将函数签名更改为
fn printMap(map: []const []bool) void
我收到错误
expected type '[]const []bool', found '[]const [4]bool'
这可以用 Zig 表达吗?