Ответ
G_Z 04.06.2016 19:40
/ 04.06.2016 19:43
1) я правильно понимаю, что add (это прикручивание к уже сущ.методу сложения хешей? или это совпадение?)
Это доработка существующего метода.
Он уже умеет добавлять ключи в хеш, нужно только добавить позицию.
Вставляет он после указанной позиции.
^hash.add(index)[$.key[value] …]
только так и не решено "вслух", как будет отработано такое поведение:
0: KeyA:ValueA
1: KeyB:ValueB
2: KeyC:ValueC
^hash.add(0)[$.KeyC[valueC2]]
одноименный ключ 'KeyC' по индексу 2 - "утилизирутся"?
или метод вернет false? или вызовет исключение?
Получится
0: KeyC:ValueC2
1: KeyA:ValueA
2: KeyB:ValueB
Ключ получит новое значение в новой позиции.
a) в моем случае replace закрывает как ваш add - по ключу/индексу,
так и ваш rename ключа
+ дает возможность заменить только Value по индексу, не указывая имя нового ключа,
как это сделать с вашим add - не очевидно.
Куда уж очевиднее:
$hash.[^hash.at($index)[key]][new_value]
b) ну и самое главное,
кажется что ваш replace никак не может быть бескровно заменен на delete + add
при работе по индексу.
Потому, что после delete - порядок ключей перестроится, и индексы уползут,
надо будет еще и доставать актуальный индекс для последующего add
- все это не выглядит упрощением.
Add добавляет ключ после указанного индекса, не вместо.
В конце-концов, если вставка сложная — в виде хеша — можно добавить новый ключ, и после этого удалить старый, узнав его новый индекс.
Да и шаг назад как раз обсуждали, что
^hash.replace[key;$.key[value] …]
два ключа подряд в аргументе, хотя и key $.key - но тем не менее, путанно.
Не вижу никакой путаницы.
Зато при передаче в виде хеша можно заменить ключ на хеш, а не только значение на значение.
да и сам add с определением (вставка по индексу) как-то неоднозначен,
это в любом случае замена, зато замена не дает разночтения что это вставка "между" или вставка "поверх" - при этом сам add переводится как добавление.
Мы добавляем ключи в хеш в указанную позицию.
Метод уже так работает, появится только указатель позиции.
Существующие ключи перезаписываются.
$one[
$.a[1]
$.b[2]
]
$two[
$.b[3]
$.c[4]
]
^one.add(0)[$two]
->
$one[
$.b[3]
$.c[4]
$.a[1]
]
- Есть ли какой-то ловкий способ изменить имя ключа в hash, с сохранием его места (по индексу)., andylars 28.05.2016 12:28
- и всё, что-ли? даже в top3 самых больших тредов не добрались! %-) (-), Misha v.3 [M] 16.06.2016 10:15
- Ответ, moko [M] 16.06.2016 14:28
- Огласите top :) (-), andylars 16.06.2016 11:24
- Ответ, Misha v.3 [M] 16.06.2016 14:29 / 16.06.2016 14:30
- Ответ, moko [M] 30.05.2016 00:59
- Всмысле это предложение или уже недокументированная возможность в ночных сборках?, andylars 30.05.2016 11:04 / 30.05.2016 11:05
- Ответ, moko [M] 30.05.2016 12:38
- Методы для работы с порядком элементов в хеше..., Sumo [M] 06.06.2016 11:05 / 06.06.2016 11:06
- Ответ, G_Z [M] 06.06.2016 15:13
- Ответ, moko [M] 06.06.2016 13:48
- Можно вообще не делать новый метод вставки. а расширить add..., Sumo [M] 06.06.2016 14:03
- Ответ, Sumo [M] 06.06.2016 14:00
- Ответ, moko [M] 06.06.2016 14:29
- Ответ, moko [M] 06.06.2016 14:23
- Если «нестандартный вариант» кажется проблемой, то можно и иначе..., Sumo [M] 06.06.2016 15:09
- Ответ, moko [M] 06.06.2016 22:10
- От add - ожидаешь, что он сохранит физ.смысл = сложение/слияние ключей. Картинки прилагаются., andylars 07.06.2016 00:28 / 07.06.2016 00:50
- put это эффективный add одного элемента, moko [M] 07.06.2016 00:43
- Я однозначно не понимаю, как вы сочетаете add и before/after, andylars 07.06.2016 01:00
- Если перестать думать про ключи и значения, то все встает на вои места..., Sumo [M] 07.06.2016 06:29
- Я таки осознал, что надо наоборот - перестать думать об add, как overlapping-методе для множества, тем более, что он выбивается из стройного ряда. (-), andylars 08.06.2016 09:50
- Поэтому, дополнить операции со множествами - операциями с рядами, можно только органически подобными по механике, иначе imho каша., andylars 07.06.2016 10:33 / 07.06.2016 10:51
- Именно так я и воспринимал. Словарь - это множество. А массив - это ряд. И операции для них работают по-разному., andylars 07.06.2016 10:03
- Ответ, G_Z [M] 07.06.2016 02:01
- Ответ, G_Z [M] 06.06.2016 23:14
- Страшновато глазами пользователя... http://www.parser.ru/forum/?id=83206, andylars 06.06.2016 16:18 / 07.06.2016 00:37
- Мне так OK, moko [M] 06.06.2016 15:21
- Вопрос семантики: begin/end будут точнее first/last, но само поведение какое-то нелинейное получается. (-), andylars 06.06.2016 14:27
- Re: Ответ (updated), andylars 06.06.2016 12:08 / 06.06.2016 13:07
- Ответ, Sumo [M] 06.06.2016 13:14
- Как черновой вариант формализации..., andylars 31.05.2016 15:44 / 31.05.2016 23:22
- Ответ, moko [M] 01.06.2016 18:51
- Мудрёно, G_Z [M] 01.06.2016 00:16
- Ответ, andylars 01.06.2016 09:45 / 01.06.2016 09:47
- А еще получить индекс ключа, зная название ключа, как-то реально без перебора всех записей? (-), 28.05.2016 17:16