Символы Ruby не собраны "мусор"!? Затем разве это не лучше для использования Строки?

Использование массива цветов и добавление их во встроенный стиль.

10
задан 18 March 2009 в 19:28
поделиться

2 ответа

Наблюдение как символы почти всегда создается через литералы, нет большого потенциала для взрыва памяти здесь. Их поведение в значительной степени требуется их использованием: каждый раз, когда Вы обращаетесь к символу, это - тот же.

Точно так же строки должны быть уникальными в Ruby. Это происходит из-за способа, которым они используются - обработка текста и т.д.

Решите, который использовать в зависимости от их семантики, не оптимизируйте преждевременно.

7
ответ дан 3 December 2019 в 18:00
поделиться

Если Вы обращаетесь к тому же символу в своем цикле, то он не должен воссоздавать тот объект каждый раз т.е.

while i < 10000
  i += 1
  :im_using_this_symbol_here
end

Теперь при использовании строки там вместо этого, строка будет воссоздана 10K времена. В целом используйте символы в случаях, где Вы почти рассматриваете литерал как константа или ключ. Очень хороший пример для меня был бы

link_to "News", :action => 'news'

вместо

link_to "News", "action" => 'news'

действие, снова используемое много раз в рамках Вашего приложения.

9
ответ дан 3 December 2019 в 18:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: