0

在 Zig 0.9 中,我需要一个具有 type 的文字表达式,void用作 的上下文参数std.sort.sort,以便我的lessThan函数签名在语义上是准确的。有吗?

我尝试了这些但无济于事:

const ek = @import("std").io.getStdOut().writer();
test "void" {
    const kandidati = .{ type, u0, .{}, void, null, undefined };
    inline for (kandidati) |k|
        try ek.print("{}, ", .{@TypeOf(k)});
    try ek.print("\n", .{});
}

给予

Test [0/1] test "void"... type, type, struct:31:37, type, @Type(.Null), @Type(.Undefined), 
All 1 tests passed.

我不想使用像const v: void = undefined;;这样的虚拟变量。这太冗长了。

作为参考,使用带有type 参数的函数void作为上下文参数,会给出如下错误消息std.sort.sortlessThanvoid

error: expected type 'fn(type,anytype,anytype) anytype', found 'fn(void, Type1, Type1) bool'
4

2 回答 2

3

例如,表达式void{}@as(void, undefined){}具有 type void。您可以看到{}在标准库测试用例中使用的std.sort.sort.

于 2022-01-08T19:24:30.063 回答
1

获取 void 值的“规范”方法是使用空块。

于 2022-01-12T11:38:52.450 回答