parser

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

 

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

Корректировка. Вот конечная позиция.

andylars 04.06.2016 21:03 / 04.06.2016 21:15

Метод replace должен быть у всех типов, которые умеет хранить хеш?
Промахнулся ссылкой. Это был уже "спонтанный патч" на MoKo-вские претензии по двум ключам в аргументе.

Более явная точка зрения вот эта (http://www.parser.ru/forum/?id=83129)

Продублирую суть:
-------------------
 ^hash.replace[at][key;value]
    at = индекс / ключ / last или first /, где надо произвести замену
    key = имя нового ключа (если не указать, то заменится только значение)
    value = значение (если не указать, то заменится только имя ключа)

    * при некорректном at, операций не производится, метод возвращает = false
    ** правило для единственной коллизии:
      когда мы заменяем по at=index, но в хеше, 
      также, присутствует одноименный ключ = key, 
      операция не производится, и метод возвращает = false
      

 ^hash.insert[at][key;value][option]
    at = индекс / ключ / last или first /, где надо произвести вставку
    key = имя нового ключа (обязательно)
    value = значение (обязательно? в хеше вроде можно пустые значения в ключах)
    option = after/before (необязательная опция, по-умолчанияю after)

    * при некорректном at, операций не производится, метод возвращает = false
    ** правило для единственной коллизии:
      если мы вставляем по at=index, но в хеше, 
      также, присутствует одноименный ключ = key, 
      операция не производится, и метод возвращает = false
-------------------
И всё.

Всё вписано в эти два метода, они очевидны как по названию, так и по ожиданиям и четко разделены по способу (over/insert). Никаких смешений вставок/наложений/сдвигов и неявных поведений против всех прошлых вариантов (включая мои) - тут вроде нет.

Остальное дело за синтаксисом.
Моя позиция на этом в общем-то пока закончена.