Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
AleXp 04.10.2005 13:17
Перестаем улыбаться - уже разобрался и переделал:@debugShowHash[h][k;v;_s] ################################################################################################### # Визуализация объекта класса hash # # string # debugShowHash[ # hash h # ] # <br> $_s[$caller._s ^; ^; ^; ^; ^; ^; ^; ^; ^; ^; ^; ^; ] ^h.foreach[k;v]{ ^if(!def $v){$_s^$.$k = ^debugShowVoid[$v]} ^if($v is bool){$_s^$.$k = ^debugShowBool[$v]} ^if($v is string){$_s^$.$k = ^debugShowString[$v]} ^if($v is int || $v is double){$_s^$.$k = ^debugShowDouble($v)} ^if($v is hash){ $_s^$.$k (hash) = ^debugShowHash[$v] $caller._s[^_s.mid(^eval(^_s.pos[ ]+1))] } } #end @debugShowHash[]А насчет "лишних комментариев"... Когда я был молодой, то меня учили документировать код. В частности, открыв файл visualization.p, любой программист увидав описание метода в самом начале файла, поймёт что в нем делается и зачем. Можно конечно убрать строки
# @debugShowObject[]Визуализация объектов # @debugShowVoid[]Визуализация пустых объектов # @debugShowString[]Визуализация объекта класса string # @debugShowTable[]Визуализация объекта класса table # @debugShowImage[]Визуализация объекта класса image ...но тогда надо будет написать много-много всего на страничке для скачивания этой библиотеки. И после скачивания человек пытающийся вникнуть в чужой (мой) код будет скакать туда-сюда между браузером, редактором с открытым файлом visualization.p, каким-нибудь readme.doc, и этим форумом. Оно надо? А, при необходимости, удалить мои "лишние" комментарии из файла visualixation.p любой может в два удара по клавишам - это как раз не проблема.
@TrimArr[arrHash][_subHash;_boolResult] ################################################################################################### # Функция удаляет из массива все элементы с пустыми значениями. Возвращает # "истину", если был удален хоть один пустой элемент, иначе - "ложь". # # bool # TrimArr[ # arrHash hash # ] # # Если входной hash определен... ^if(def $arrHash){ # Инициализация переменной результата $_boolResult[$FALSE] # Создание пустого hash'а-вычитаемого $_subHash[^hash::create[]] # Бежим по ключам входного hash'а ^arrHash.foreach[_key;_var]{ # Если значение текущего ключ представляет собой строку из пробелов ^if($_var is string){$_var[^_var.trim[]]} # Если значение ключа пусто ^if(!def $_var){ # Формируем hash-вычитаемое $_subHash.$_key[] # Определяем результат выполнений функции как положительный $_boolResult[$TRUE] } } # Вычитание из входного hash'а пустых ключей ^arrHash.sub[$_subHash] # Результат работы функции $result($_boolResult) }{ # Результат функции при пустом входящем hash $result($FALSE) } #end @TrimArr[]Это как нижнее бельё, в т.ч. и у мужика, которое всегда должно быть цивильным и привлекательным: никогда не знаешь куда жизнь закинет вечером и как сложится ситуация. Пришел в гости, тяпнул полташку, начал раздеваться, а у тебя трусы "семейного" типа и до колен - ну неудобняк же! Придется ещё пару раз "тяпнуть" чтобы снять напряжение, и, не ровен час, все пьянством и закончится, как обычно в общем ;)