Idiomatic D. Добавление и удаление элементов в массивах [перевод]

Вторая порция идиом языка программирования D, оформленная в виде краткого описания решения некоторых проблем, связанных с массивами.

Добавление элемента в динамический массив:

T[] arr;
arr ~= value; // элемент добавляется в конец массива

Удаление элемента из массива по его индексу:

import std.algorithm : remove;
T[] arr;
arr = arr.remove(index); // индексный элемент удаляется из массива

Удаление элемента из динамического массива по известной величине самого элемента:

auto removeElement(R, N)(R haystack, N needle)
{
    import std.algorithm : countUntil, remove;
    auto index = haystack.countUntil(needle);
    return (index != -1) ? haystack.remove(index) : haystack;
}
int[] arr = [1, 5, 10];
arr = arr.removeElement(5);
assert(arr == [1,10]);

Добавление элемента в ассоциативный массив (если ключ key не существует, то он будет создан):

aa[key] = value; // aa[key] создается, если еще не существует

Удаление элемента из ассоциативного массива:

aa.remove(key); // для этого есть встроенное свойство

Добавить комментарий