[] метод Ruby String - PullRequest
       22

[] метод Ruby String

6 голосов
/ 28 декабря 2008

Когда я читал исходный код Beast, я обнаружил много такого кода:

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

Это похоже на вызов метода [] с Symbol в качестве входного параметра для String, но я не нашел такой тип параметра метода String [] в ruby ​​API. Что это значит? заранее спасибо.

Ответы [ 3 ]

11 голосов
/ 28 декабря 2008

Это метод, добавленный плагином "Gibberish", который использует Beast для интернационализации. Помните, что классы в Ruby открыты, поэтому вы не всегда можете рассчитывать на стандартный API в таких случаях!

4 голосов
/ 28 декабря 2008

В beast source, посмотрите плагин gibberish, в котором класс String изменяется для приема символов в скобках.

Класс String сам по себе не делает ничего разумного, применяя метод str[symbol].

1 голос
/ 28 декабря 2008
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
...