parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

не очень нравится

moko 16.10 23:12 / 17.10 01:00

Во-первых, мне кажется странным метод, который то "разворачивает" элементы (для хеша/массива), то нет. А с объектом он как себя ведет? А почему, ведь это по сути хеш?
Во-вторых, сейчас create делает полную копию параметра, включая "дырки". Для нескольких аргументов это довольно странно. Особенно если там будет несколько хешей с цифровыми индексами.
В-третьих, так и не предложено решение для массива из одного элемента, кроме сочетания create/append.
В-четвертых, предложенный вариант прямой путь к минусам, от которых мы страдали с хешами (к счастью, уже победили). Вот такой например код:
@setup[options]
$a[^array::create[ 
   ^if($options.o1){
         $.1(true)
   }
   ^if(def $options.o5){
         $.5[$options.o5]
   }
]]
Если не будет опций, в предложенном варианте получится не пустой массив (как сейчас), а массив с "пробельным" элементом.

Текущая реализация мне кажется более целостной. Если вопрос в непонятности сути конструктора, то да, название new не самое удачно (разве что короткое:). Правда make и build мне тоже не очень нравятся. Предлагаю рассмотреть еще ^array::array[1;2;3], ^array::elements[1;2;3], ^array::items[1;2;3], ^array::list[1;2;3], ^array::combine[1;2;3], может еще лучше варианты будут.