Сообщение от Nexus
|
По-моему, ваша библиотека несколько бесполезна.
|
Она совершенно бесполезна и совершенно никакого отношения к реализации коллекции не имеет.
Сообщение от maxvolodya
|
И, так как выложил, и, возможно, будут ей пользоваться не только я и коллеги, подскажи, что бы ты, хотел бы видеть в такой хреновине, и была ли бы полезной?
|
Выглядит как «мне не нравятся массивы в Python, поэтому давай-ка напишу обёртку для списка в C# и громогласно обзову это коллекцией».
Цитата:
|
Collection - Just a wrapper around the Array, adds methods that make life easier
|
Какой баг! Притом большинства методов нет! Вам нужно было написать класс, который наследует от Array. Я так понимаю, что ваш метод .getInnerRef() предполагается вызывать для доступа к методам списка? Или предполагается, что нужно заводить сразу две переменные — одну для настоящего списка, другую для обёртки. И замените ваш позор — Collection на более подходящее имя, типа FancyArrayWrapper.
Коллекция — абстрактный тип данных, хранилище объектов без конкретной реализации структуры данных.
Итератор — интерфейс, предоставляющий доступ к элементам коллекции и навигацию по ним.
Примеры типов, реализующих коллекции — список, массив, множество, дерево, граф, стек, кортеж, ассоциативный массив и пр.
Посмотрите на реализацию коллекции, например, в Java —
https://github.com/openjdk/jdk/tree/...sses/java/util
Хотя в JS нет специального синтаксиса для описания интерфейсов коллекции и итераторов, однако наличие у объекта O метода Symbol.iterator, реализующего перечисление неких объектов может рассматриваться как реализация интерфейса Iterator, а объект O может считаться в таком случае коллекцией.
Примеры классов в JS, реализующих интерфейс Iterator — Array, String, Map, Set, Uint8Array и пр. Браузерное API — классы NodeList, URLSearchParams и пр. А также генератор, созданный при помощи функций-генератора.
Пример реализации иммутабельных коллекции на JS —
https://github.com/immutable-js/immutable-js