2008-12-28 210 views
6

當我讀野獸的源代碼,我發現這樣的大量的代碼:[]紅寶石字符串的方法

<%= 'Password'[:password_title] %> 

看起來爲[]的方法的調用與符號作爲輸入參數爲字符串對我來說,但我沒有在ruby API中找到這種類型的String []方法的參數。這是什麼意思? 在此先感謝。

回答

11

這是一種由「Gibberish」插件增加的用於國際化的Beast使用的方法。請記住,Ruby中的類是開放的,所以在這種情況下你不能總是依靠標準API!

1
str[fixnum] => fixnum or nil 
str[fixnum, fixnum] => new_str or nil 
str[range] => new_str or nil 
str[regexp] => new_str or nil 
str[regexp, fixnum] => new_str or nil 
str[other_str] => new_str or nil 

這些都是我發現的。如果這裏的符號等於String,我仍然不理解代碼的含義。爲什麼不直接使用:

<%= 'password' %> 

甚至:

password 
+0

是的,這有點奇怪。我會刪除我的答案。在我提供之前我沒有想過。 – PEZ 2008-12-28 17:28:06

4

在獸源,檢查出亂碼插件,其中String類進行修改,以接受括號函數符號。

通過應用str[symbol]方法,字符串類本身不會做任何合理的事情。