Zig 中的类型替换
与 C# 这种面向对象的编程语言不同,Zig 提供了多种方式让我们可以在程序中应用里氏替换: 基于我们的使用场景,我们需要像选择 Allocator 一样选择合适的替换方式。 vtable 模式是 Zig 中最接近其他 OOP 语言的实现接口的方式,Zig 中的 Allocator、Writer 等内置接口的实现都采用了 vtable 模式。这个模式由以下部分组成: 以 接口为例,其定义如下: 要实现新的 Allocator 接口,只要实现 VTable 中定义的 4 个函数即可。如果我们的新实现需要访问内部状态,则可以将内部状态数据结构作为 保存到 字段。这样在 VTable 函数中就可以通过下面的方式来访问: 当我们需要构造 的实例并将其作为 接口传递给消费者时,
评论
?
参与讨论