💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
类型推断是让编译工具在编译时猜测类型的过程,目的是不用特别指定每个变量的类型就可以实现强类型。这跟动态类型不同,因为数据仍然需要是一个一致的类型。当编译工具扫描你的代码,它试图保证类型被分配到变量上,而在变量的生命周期内不会被改变。 当你使用函数时,类型推断对程序有着极大的作用。后面会介绍函数。 在一个新文件输入如下代码并保存为 `TypeInference.hx` : ~~~ class TypeInference { public static function() { var myVar = 10.5; trace(myVar); } } ~~~ 现在编译并运行这个例子。你会看到 `myVar` 的内容被输出到命令行窗口。现在修改代码加入新行: ~~~ class TypeInference { public static function() { var myVar = 10.5; trace(myVar); myVar = “The quick brown fox.”; trace(myVar); } } ~~~ 当你编译这个例子,应该会看到一个错误,大致如下: > TypeInference.hx:7: characters 2-32 : String should be Float 在第一个示例中,编译工具并没有为变量注册类型,直到它第一次被赋值。一旦值的类型决定,它就会绑定类型到该变量,所以只有特定的数据类型才能在将来存储到这个变量中。 第二个例子,编译工具注意到变量已经包含了一个 `Float`。它之后再被赋值一个 `String` 值,它并不能立即转换为 `Float` 类型,所以编译工具抛出一个错误。