我在业余时间学习 Ruby,我有一个关于常量语言结构的问题。Ruby 是否有等效的 C++ const 关键字来防止变量被修改?这是一些示例代码:
first_line = f.gets().chomp()
column_count = first_line.split( %r{\s+} ).size()
print column_count, "\n"
我想将 column_count 声明为 const,因为我在下面的程序中使用它,我真的不想错误地修改它。Ruby 是否为此提供了一种语言结构,还是我应该接受它并意识到我的变量总是可变的?
回复评论:
“我猜,变量“意外”覆盖的最可能原因是长代码块。我同意你的观点的精神,但不同意这封信。您关于避免长代码块和不必要状态的观点是一个很好的观点,但对于常量也可以用于描述实现内部的代码设计。我的代码中 const 的很大一部分价值来自于注释哪些变量我应该更改,哪些我不应该更改,因此如果我明年回到我的代码,我不会想更改它们。这与暗示由于良好的变量名和清晰的缩进而使用简短注释的代码比由详细注释解释的笨拙编写的代码更好的观点相同。
另一个选项似乎是 Ruby 的 #freeze 方法,我也喜欢它的外观。感谢大家的回复。