ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
Haxe 编译器利用丰富的类型系统,可以在编译时检测程序中类型相关的错误。类型错误是对一个特定类型执行了一个无效操作如,除以一个字符串、尝试访问一个整数的字段,或者调用一个函数而没有传递足够(或太多)的参数。在一些语言中,这些额外的安全需要消耗很多精力,因为程序员被要求明确地分配类型到语法结构: ~~~ var myButton:MySpecialButton = new MySpecialButton(); // As3 MySpecialButton* myButton = new MySpecialButton(); // C++ ~~~ 显式的类型声明在 Haxe 中并不是必须的,因为编译器可以推断类型: ~~~ var myButton = new MySpecialButton(); // Haxe ~~~ 我们会在 [类型推断(第3.6节)](http://#) 中探索它的细节。现在,足以确定上面代码中的变量 `myButton` 是可以被认为 `MySpecialButton` 类的一个实例。 Haxe 的类型系统知道七个类型组: * 类实例:一个指定类或者接口对象 * 枚举实例:Haxe 枚举类型中的一个值 * 结构类型:一个匿名结构,即,一个被命名的字段集合 * 函数类型:一个由一些参数和一个返回值组成的混合类型 * 动态类型:一个万能类型,可以和任何类型兼容 * 抽象类型:一个编译时类型,在运行时被一个不同的类型表示 * 单形类型:一个 unknown 类型,之后可能会成为不同的类型 下一章中,我们将描述这些类型组中的每个类型,以及它们之间如何联系。 >[warning] 定义: **混合类型** 复合类型是指拥有子类型的类型。这包括使用 [类型参数(第3.2节)](http://#) 的任何类型和 [函数类型(第2.6节)](http://#)。