在 Zig 实现接口
早在 2020 年 6 月,Nathan Michaels 就发表了一篇关于如何在 zig 中进行运行时多态(接口)的文章。然而,从那时起,社区已经从 @fieldParentPtr
转向使用胖指针。这是标准库现在使用的惯例,例如在 allocator 和 rand 中。这篇文章将介绍新惯例以及如何使用它。就像在 Nathan 的原始帖子中一样,我将创建一个正式的迭代器接口,它可以像这样使用:
while (iterator.next()) |val| {
// do something with val
}