Рассмотрим этот код:
var t: {a: Int} = {a:100, b:200};
Он не компилируется с ошибкой: { b : Int, a : Int } has extra field b
Но этот код компилируется нормально:
class Foo {
public var a: Int = 100;
public var b: Int = 200;
public function new() {}
}
...
var t: {a: Int} = new Foo();
Почемупервый случай запрещен?
Что может пойти не так, если есть дополнительные поля?И если что-то может пойти не так, почему они допускаются во втором случае.