我在業餘時間學習Ruby,我對常量的語言結構有一個疑問。 Ruby是否具有C++ const關鍵字的等價物以防止變量被修改?下面是一些示例代碼:C++常量的Ruby等價物?
first_line = f.gets().chomp()
column_count = first_line.split(%r{\s+}).size()
print column_count, "\n"
我想申報COLUMN_COUNT爲const,因爲我在下面的程序使用它,我真的不希望錯誤地修改它。 Ruby是否爲此提供了一種語言結構,或者我應該吸取它並意識到我的變量總是可變的?
迴應評論:
「的變量是,我猜,長的代碼塊‘意外’改寫的最可能的原因。」我同意你的觀點精神,但不同意這封信。關於避免長塊代碼和不必要狀態的觀點是很好的一點,但對於常量,在描述實現內部代碼設計時也很有用。在我的代碼中const值的很大一部分來自於註釋哪些變量我應該改變,哪些不應該改變,這樣我就不會在下一年回到我的代碼中時嘗試改變它們。這是一樣的情緒,表明使用簡短註釋的代碼由於具有良好的變量名稱和明確的縮進比使用詳細註釋解釋的笨拙代碼更好。
另一種選擇似乎是Ruby的#freeze方法,我喜歡它的外觀。感謝大家的回覆。
快速谷歌揭示http://rubylearning.com/satishtalim/ruby_constants.html – cobbal 2009-04-20 05:03:49