IObject
IObject
是所有接口的父接口,是所有 Class 自动实现的接口。
as
zig
pub fn as(self: I, comptime T: type) t: {
break :t if (isInterface(T)) ?T else ?*T;
}
注意
这个转换需要进行一次数组搜索操作,是有开销的
asptr
zig
pub fn asptr(self: I) *anyopaque
asraw
zig
pub fn asraw(self: I) IRaw
asraw 相当于如下代码
zig
pub fn asraw(self: I) IRaw {
return IRaw{.ptr = self.ptr, .vptr = @ptrCast(self.vptr)};
}
eql
zig
pub fn eql(self: I, other: I) bool
功能:比较两个接口实例是否相等
参数:
self
: 参与比较的接口之一other
: 另一个接口
返回:相等返回 true
否则 false
destroy
zig
pub fn destroy(self: I) void
功能:同 Class.destroy()