parser

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

 

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

Выглядит красивее и проще, но по факту - проблем прибавилось и методов при этом увеличилось.

andylars 04.06.2016 17:48 / 04.06.2016 18:52

1) я правильно понимаю, что add (это прикручивание к уже сущ.методу сложения хешей? или это совпадение?)

^hash.add(index)[$.key[value]]

только так и не решено "вслух", как будет отработано такое поведение:

 0: KeyA:ValueA
 1: KeyB:ValueB
 2: KeyC:ValueC

^hash.add(0)[$.KeyC[valueC2]]
 
одноименный ключ 'KeyC' по индексу 2 - "утилизирутся"? 
или метод вернет false? или вызовет исключение? 


2) 
# переименование
^hash.rename[old_key_name;new_key_name]
^hash.rename(index)[new_key_name]

# замена (опционально, то же, что delete + add)
^hash.replace[key;$.key[value]]
^hash.replace(index)[$.key[value]]

a) в моем случае replace закрывает как ваш add - по ключу/индексу, 
 так и ваш rename ключа 
+ дает возможность заменить только Value по индексу, не указывая имя нового ключа, 
как это сделать с вашим add - не очевидно.

b) ну и самое главное, 
кажется что ваш replace никак не может быть бескровно заменен на delete + add 
при работе по индексу.

Потому, что после delete - порядок ключей перестроится, и индексы уползут, 
надо будет еще и доставать актуальный индекс для последующего add 
- все это не выглядит упрощением.


Да и шаг назад как раз обсуждали, что
^hash.replace[key;$.key[value]]

два ключа подряд в аргументе, хотя и key $.key - но тем не менее, путанно.

да и сам add с определением (вставка по индексу) как-то неоднозначен,
это в любом случае замена, зато замена не дает разночтения что это вставка "между" или вставка "поверх" - при этом сам add переводится как добавление.


А вот хеш в аргументе типа $.key[value]... 
явно с прицелом на bulk-режим для пачки значений - это нравится!
Все же кажется, что вот тут --> http://www.parser.ru/forum/?id=83154
сама механика получилась "почище" и при этом не выглядит непредсказуемой,
при этом вроде даже методов поменьше, и на одну функцию больше (вставка только значения по индексу)

А вот опционально приделать $.key[value] или key;value - можно бы