Гибкие записи в статике
Feb. 21st, 2013 02:32 pmРебе
metaclass уже не первый раз поднимает эту тему: можно ли иметь строгую типизацию записей, но не объявляя их заранее? Вот пара примеров из используемых мною языков.
Первый пример: Haxe.
Язык со статической типизацией. Где типы не указаны, компилятор сам их выводит. Тут функция makeData производит значение анонимного типа с парой полей типа Int и String (тоже выведены). Другая функция использует данные из такой записи. Напрямую одна другую даже не вызывает. Все компиляется и работает гладко. Теперь если заменить строчку ( Read more... )
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Первый пример: Haxe.
function makeData() { return { a: 99, b : " bottles of beer" }; } function useData(data):Void { var x:Int = data.a; var y:String = data.b; trace(x, y); } ... var t = makeData(); useData(t);
Язык со статической типизацией. Где типы не указаны, компилятор сам их выводит. Тут функция makeData производит значение анонимного типа с парой полей типа Int и String (тоже выведены). Другая функция использует данные из такой записи. Напрямую одна другую даже не вызывает. Все компиляется и работает гладко. Теперь если заменить строчку ( Read more... )