parser

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

 

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

Re: Ответ (updated)

andylars 06.06.2016 12:08 / 06.06.2016 13:07

^h.index_of[key] -> int
Однозначно - да.
^h.insert[index;hash;options] -> []
Вставляет другой хеш перед index.
index — (int)|[first|last]. Отрицательный индекс как в ^hash.at.
Если в хеше есть одноименные ключи - выбрасываем исключение.
Если в опциях $.force(true), то удаляем одноименные ключи, вставляем новый хеш и не выбрасываем исключение.
1. Какие основания не уметь вставлять другой хеш, "в точку" по имени ключа?

2. Почему вставка только "перед", и почему она? / На примере того же Питона (класс collection.deque, по-умолчанию везде "после" (append), а для вставки "перед", отдельно appendleft или extendleft. /

NB: А еще, если понимать под last - индекс последнего элемента хеша, то вставка "перед" ним, логически означает "добавит в аккурат перед последним значением" (тоже самое, только наоборот - при вставке в вершину).

3. $.force - опциональная обработка исключения - хорошо, а как насчет варианта "quiet", когда операция ничего не производит, и возвращает -1 (кол-ва удачно измененных ключей). У нас же не падает исключение, когда мы получаем порой void на результы некоторых операций.

4. Ну, и собственно, главный вопрос топика ("...и всего такого" (c)):
И как с этим достаточным минимумом - изменить ключ и/или значение в конкретном месте по индексу (с сохранием этого индекса и без сдвига всего хеша)?