Я не знаю, как установить емкость массива, поэтому мой массив может хранить только 3 элемента. Например. если я пытаюсь нажать 4-й элемент, он возвращает ошибку. Любые идеи?Ограничение емкости массива в Ruby
1
A
ответ
1
Вы можете создать класс-оболочку для своего массива! Вы также можете переопределить «[]» оператор в и проверить, если ваш индекс действителен:
def [](i)
# getter
end
def []=(i, v)
# setter
end
6
Array
класс по умолчанию не имеет такой функциональности. Таким образом, ваши варианты:
- Создать отдельный класс, который хранит три элемента и реализовать свои собственные методы, как
push
и[]
. Подкласс
Array
и переопределить методы, чтобы только для трех элементов, например:class ThreeElements < Array def push(*stuff) raise 'Already has three elements!' unless length < 3 super end end
На мой взгляд, # 1 является лучшим вариантом, так как интерфейс Массив по умолчанию имеет слишком много методов беспокоиться о переопределении.
Смежные вопросы
- 1. ByteArrayOutputStream ограничение емкости
- 2. Bluemix ClearDB Ограничение емкости MySQL
- 3. Ограничение емкости Framework Entity Framework
- 4. Расширение емкости массива
- 5. Требуется удвоение емкости динамического массива?
- 6. SQL применяет ограничение до N элементов емкости для базы данных
- 7. Поиск емкости в текущем цикле с Ruby/Rails
- 8. Уравнение увеличения емкости ArrayList
- 9. Каковы затраты, связанные с увеличением емкости среза массива в Go?
- 10. Ограничение массива Scanf в C?
- 11. Увеличение емкости для вектора
- 12. Ограничение массива PHP?
- 13. ограничение размера массива?
- 14. Ограничение массива результатов
- 15. Ограничение массива Mongo
- 16. C Ограничение размера массива
- 17. Ruby On Rails - Ограничение маршрута
- 18. Ограничение значений массива
- 19. Сортировка массива в ruby
- 20. Фильтр массива в Ruby
- 21. Строка массива в Ruby,
- 22. Итерация массива в Ruby
- 23. Зацикливание массива в Ruby
- 24. Печать массива в ruby
- 25. Ограничение сокращения в Ruby можно пренебречь?
- 26. Почему нет емкости в ConcurrentQueue?
- 27. Сбор максимальной емкости в C#
- 28. Отчет о емкости в mysql
- 29. Поиск остаточной емкости
- 30. Несоответствие емкости HDFS
Это не так, как работают массивы Ruby. Лучше использовать некоторый класс-оболочку. Бесстыдный плагин, я написал драгоценный камень, который должен покрыть ваши потребности: https://github.com/citizen428/revolver –