2014-02-13 29 views
0

我正在學習Ruby/Rails,這是一個掙扎。對我來說一個問題是「鬆散的語法」。以下是關於測試的Rails指南的摘錄:爲什麼所有Rails語法的選項?

由於歷史原因,assigns哈希使用基於字符串的密鑰。因此,賦值[:person]將不起作用,但將賦予[「person」]。然而,爲了安撫我們對符號的渴望,一個替代的訪問器已經被設計成使用方法調用而不是索引引用。因此,賦值(:person)將像賦值[「person」]一樣工作,但賦值[:person]將不起作用。

因此,我們必須

assigns(:person) 

assigns["person"] 

但不

assigns[:person] 

但對於

assigns("person") 

要完成設置?

那麼,我錯過了什麼?爲什麼這種靈活性是一件好事?

+0

不是,你的建議只會讓事情更加混亂。此外,你真的沒有正確使用評論,他們適用於他們之前的行,而不是他們之後的行。我花了幾個讀數來弄清楚你在說什麼。 – meagar

+0

好的,我改變了評論,希望更好。我並不是建議增加最後的選項,或者說是有道理的。我只是想了解我應該如何思考用於做同樣事情的各種語法選項。 –

+0

也許我應該問哪個版本更習慣Ruby?提供的答案回答了我的問題。 –

回答

1

意圖不是靈活性,意圖是一致性。通常我們在Ruby中使用符號作爲數組鍵,因爲它們比字符串快。

由於「歷史原因」,assigns沒有這樣做,所以他們只是提供了一種方法來使用與其他地方一樣的符號。

這不是一件好事或一件壞事,它只是一件事。

相關問題