定义“AnyType”特性。
这些是Mojo内置的,所以你不需要导入它们。
AnyType
AnyType特性描述了一个具有析构函数的类型。
在Mojo中,提供析构函数的类型向语言表明,它是一个具有生命周期的对象,每当该对象的实例到达其生命周期结束时,都需要调用其析构函数。因此,只有非平凡类型才能有析构函数。
任何具有生命周期的类型的组合也是一个具有生命周期的对象,无论用户是否显式定义了析构函数,结果类型都会接收一个析构函数。
悲观地说,所有类型在泛型函数中都需要析构函数。因此,我们认为所有的Mojo traits都继承自AnyType,为可能需要的类型提供了默认的空操作析构函数实现。
在Foo
上实现AnyType
特性以释放分配的内存的示例:
@value
struct Foo(AnyType):
var p: UnsafePointer[Int]
var size: Int
fn __init_