2008-12-28 205 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]方法,字符串类本身不会做任何合理的事情。