当我读野兽的源代码,我发现这样的大量的代码:[]红宝石字符串的方法
<%= 'Password'[:password_title] %>
看起来为[]的方法的调用与符号作为输入参数为字符串对我来说,但我没有在ruby API中找到这种类型的String []方法的参数。这是什么意思? 在此先感谢。
当我读野兽的源代码,我发现这样的大量的代码:[]红宝石字符串的方法
<%= 'Password'[:password_title] %>
看起来为[]的方法的调用与符号作为输入参数为字符串对我来说,但我没有在ruby API中找到这种类型的String []方法的参数。这是什么意思? 在此先感谢。
这是一种由“Gibberish”插件增加的用于国际化的Beast使用的方法。请记住,Ruby中的类是开放的,所以在这种情况下你不能总是依靠标准API!
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
在兽源,检查出乱码插件,其中String类进行修改,以接受括号函数符号。
通过应用str[symbol]
方法,字符串类本身不会做任何合理的事情。
是的,这有点奇怪。我会删除我的答案。在我提供之前我没有想过。 – PEZ 2008-12-28 17:28:06