![]() |
От: |
Mamut
|
http://dmitriid.com |
Дата: | 25.12.08 21:13 | ||
Оценка: |
34 (6)
+1
-1
![]() |
В чем фишка массивов? Хороший вопрос
В программировании мне ни разу не приходилось сталкиваться с ситуацией, когад массив был бы лучшим решением для хранения информации, чем любая иная его форма. Я думал, что добавочные «фишки» в языках программирования улучшили массивы и, тем самым, их заменили. Теперь я вижу, что они не заменены, а, наоборот, обрели, так сказать, новую жизнь
http://stackoverflow.com/questions/392397/arrays-whats-the-point
Я увидел это сообщение на Реддите и реакия была далеко не благосклонной. Большая часть обсуждения сконцетрировалась на том, насколько глуп сам вопрос, и на ошибках образовательного и профссиональных сообществ, которые привели к тому, что такие базовые вещи не известны. К сожалению, моя первая реакция была такой же.
После некоторого размышления я понял, что вопрос не такой уж и глупый. Я понял, что я не использую массивы в Эрланге, они там просто не нужны. Программируя на С и С++, я постоянно их использовал, потому что я был практически вынужден их использовать. Но в Эрланге на передний план выходят списки. В Эрланге есть средства для работы с массивами, но максимум, на который я приближаюсь к использованию их — это в использовании маленьких кортежей фиксированой длины. Странно, но я только сечас заметил, насколько редко я использую массивы. Единственно место, где я их применяю, программируя на Эрланге, это для организации поиска по двоичным ключам в коде двоичных деревьев в CouchDB.
Правда состоит в том, что, если вы не занимаетесь низкоуровневым программированием, массивы (и даже векторы) редко необходимы или оптимальны дл большинства задач. Самая яркая особенность массивов — это константное время доступа к любому значению по порядковуму номеру. Проблма состоит в том, что мало какая задача требует константного времени доступа к значениям по порядковым значениям. Массивы в основном применяются как коллекции данных, для чего больше подходит список.