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