Гибкие записи в статике
Feb. 21st, 2013 02:32 pmРебе
metaclass уже не первый раз поднимает эту тему: можно ли иметь строгую типизацию записей, но не объявляя их заранее? Вот пара примеров из используемых мною языков.
Первый пример: Haxe.
Язык со статической типизацией. Где типы не указаны, компилятор сам их выводит. Тут функция makeData производит значение анонимного типа с парой полей типа Int и String (тоже выведены). Другая функция использует данные из такой записи. Напрямую одна другую даже не вызывает. Все компиляется и работает гладко. Теперь если заменить строчку ( Read more... )
Первый пример: 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... )