Вторая порция идиом языка программирования 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); // для этого есть встроенное свойство