構造体と型
typedef X = { id: Int, name: String } class Hoge { public static function hoge(x: X) {} public static function main() { hoge({ id: 0 }); } }
これはエラー。
$ haxe hoge.hxml Hoge.hx:5: characters 7-16 : { id : Int } has no field name Hoge.hx:5: characters 7-16 : For function argument 'x'
フィールド足りないし、まぁ分かる。
これも駄目。
using Lambda; typedef X = { id: Int, name: String, msg: String, hoge: Int } class Hoge { public static function hoge(x: List<X>) {} public static function main() { hoge([{ name: "hoge" , msg: "hoge" }].list()); } }
まぁ、そうだよな。
しかし、下は通る。
using Lambda; typedef X = { id: Int, name: String, msg: String, hoge: Int } class Hoge { public static function hoge(x: List<X>) {} public static function main() { hoge([{ name: "hoge" }, { msg: "hoge" }].list()); } }
えー。