Показать сообщение отдельно
  #3 (permalink)  
Старый 27.04.2020, 22:38
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от 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
Ответить с цитированием