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) *anyopaqueasraw
zig
pub fn asraw(self: I) IRawasraw 相当于如下代码
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()
