Расширения

Расширения (extensions) могут использоваться для расширения либо определения анонимного типа (typedef), либо для расширения типа "на лету". Вот пример расширения определения анонимного типа:
typedef Point = {
   var x : Int;
   var y : Int;
}

<em> определяем 'p' как Point с дополнительным полем z
var p : {> Point, z : Int }
p = { x : 0, y : 0, z : 0 }; // работает
p = { x : 0, y : 0 }; // не работает
Для классов, поскольку они не определяют типов, необходимо cast во время присвоения. Это небезопасно, так что будьте осторожны.
   var p : {> flash.MovieClip, tf : flash.TextField };
   p = flash.Lib._root; // ошибка
   p = cast flash.Lib._root; // работает, но без контроля типов !
Расширения можно также использовать для создания каскадных определений//:
typedef Point = {
    var x : Int;
    var y : Int;
}
typedef Point3D = {> Point,
    var z : Int;
}
В этом случае, каждый Point3D будет также и Point.

Комментарии

signature Point { var

signature Point {
var x : Int;
var y : Int;
}
это удивило, ключевое слово "signature" раньше не упоминалось.

у Николаса в той же статье (и в старой, и в новой версии документации):
typedef Point = {
var x : Int;
var y : Int;
}

очевидно здесь ошибка

исправил. спасибо!

да, была ошибка, это наверное осталось ещё с совсем старой версии, до того как typedef появился.

а вообще такие вещи можно всем исправлять, если есть уверенность.
новая версия создаётся, к старой можно вернуться, если что, и к ней можно добавить коммент, что именно исправлено, также как это обычно делается в вики. по крайней мере этот функционал должен работать )

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>.

Подробнее о форматировании

CAPTCHA
Этот вопрос помогает предотвратить автоматический спам
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.
To prevent automated spam submissions leave this field empty.