企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
扩展是用来表达 一个结构具有所有指定类型的字段并且有一些另外的自己的字段: ~~~ typedef IterableWithLength<T> = { > Iterable<T>, // read only property var length(default, null):Int; } class Main { static public function main() { var array = [1, 2, 3]; var t:IterableWithLength<Int> = array; } } ~~~ 这个大于操作符 `>` 表示一个 `Iterable<T>` 的扩展被创建,跟随有另外的类字段。在这个情况,一个 Int 类型的 [只读属性(第4.2节)](http://#) `length` 是必须的。 > 为了被和 `IterableWithLength<T>` 类型兼容,一个类型必须被和 `Iterable<T>` 兼容,并且也提供一个只读的 Int 类型属性 `length` 。这个例子分配一个 Array,用来满足这些需求。 **从Haxe 3.0 开始** 还可以扩展多个结构: ~~~ typedef WithLength = { var length(default, null):Int; } typedef IterableWithLengthAndPush<T> = { > Iterable<T>, > WithLength, function push(a:T):Int; } class Main { static public function main() { var array = [1, 2, 3]; var t:IterableWithLengthAndPush<Int> = array; } } ~~~