Type in Type
В лабораторных условиях после 20-тиминутного мозгового штурма (аж самому смешно) был взращен код, реализующий конструкцию "тип в типе". Люди, использую(овав)ши(/щи)е BlitzMax поймут, насколько это может быть удобно. Так вот, в Blitz3D это все возможно, но вот по поводу удобства... В общем, все как всегда (;
Воть кодь: Код:
; Надеюсь, _здесь_ комментарии не нужны? |
Ответ: Type in Type
да это полезно, даже очень !! :)
полный перебор !! это -1 !! я воть вчера курил связанные списки... |
Ответ: Type in Type
Идея хорошая. реализация отчасти правильна. только есть несколько "но".
1) Почему вещественный ID? 2) вот вариант через handle, во первых удобнее, во вторых нет поля ID у родительского объекта (точнее нет пользовательского поля, мы пользуемся "неявным"), ну и наконец, мы отбрасываем ту мизерную вероятность возникновения дублирующего ID. Код:
; Надеюсь, _здесь_ комментарии не нужны? |
Ответ: Type in Type
а вот и черезжопное решение (оказывается можно сделать):
1.ето работает 2. код абсолютно не читаем. идея аффтора не сохранена. 3. зато всего один перебор Цитата:
|
Ответ: Type in Type
Отстустующий ООП в Б3Д можно компенсировать ситемой произвольной иерерахии, построенной на пивотах и их чайлдах-пивотах
|
Re: Type in Type
ничего не понял><
наверное к лучшему;) |
Ответ: Type in Type
При создании к примеру функции создания, можно использовать такую форму:
Код:
Function CreateCoords.Coords(x#,y#) Но при присваивание, приходится объявлять переменную с типом данных класса, что весьма неудобно, если её юзать много где. |
Ответ: Type in Type
;Хитрозакрученное черезжопное решение
For ps.coords = Each coords .... как я понял из это части кода видно что к подтипу можно обратится используя несколько переменный (pos - от главного типа к подтипа, ps- напрямую к подтипу) это так или а чёто упустил? |
Часовой пояс GMT +4, время: 17:24. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot