Я изучаю Ruby в свое свободное время, и у меня есть вопрос о языковых конструкциях для констант. Имеет ли Ruby эквивалент ключевого слова C++ const, чтобы переменные не изменялись? Вот пример кода:Ruby Эквивалент C++ Const?
first_line = f.gets().chomp()
column_count = first_line.split(%r{\s+}).size()
print column_count, "\n"
Я хотел бы объявить COLUMN_COUNT быть константной, потому что я использую его ниже в моей программе, и я действительно не хочу, чтобы изменить его по ошибке. Предоставляет ли Ruby конструкцию языка для этого, или я должен просто отсосать ее и понять, что мои переменные всегда изменяемы?
Ответ на комментарий:
"Наиболее вероятная причина„случайной“перезапись переменных, я предполагаю, длинные блоки кода. Я согласен с духом вашей точки зрения, но не согласен с этим письмом. Ваш вопрос об избежании длинных блоков кода и ненужном состоянии является хорошим, но для констант также может быть полезно при описании дизайна кода внутри реализации. Большая часть значения const в моем коде исходит из аннотации, какие переменные мне ДОЛЖНЫ меняться, и которые я не должен, так что я не соблазню изменить их, если я вернусь к своему коду в следующем году. Это то же мнение, что предполагает, что код, который использует короткие комментарии из-за хороших имен переменных и четких отступов, лучше, чем неловко написанный код, объясненный подробными комментариями.
Другим вариантом является метод #freeze Ruby, который мне тоже нравится. Спасибо за ответы всем.
быстрый google раскрывает http://rubylearning.com/satishtalim/ruby_constants.html – cobbal