Ruby => оператор ... например:: text => / Войти / - PullRequest
1 голос
/ 03 марта 2010

Что это делает? Я нахожу здесь пример, но кроме того, что он делает, что это значит? Я ничего не могу найти в Google, потому что, ну, я не уверен, что '=>' даже называется в этом контексте.

Больше примеров здесь: http://mechanize.rubyforge.org/mechanize/EXAMPLES_rdoc.html

Ответы [ 3 ]

3 голосов
/ 03 марта 2010

В :text => /Log In/ вы передаете хэш функции page link_with, ключ в хэше - :text и соответствующее ему значение - /Log In/.

В основном: :x => y означает, что :x - это ключ в хэше, который отображается на значение y.

Передача хешей таким функциям позволяет вам иметь что-то вроде (но не совсем) именованных параметров.

UPDATE:

Символ вида :something называется .... символом! Вы можете думать о них как о глобальных строковых константах (но они не совсем одинаковы). Теперь, когда вы вспоминаете что-то вроде:

 login_page.form_with(:action => '/account/login.php')

На самом деле вы создаете новый хэш на лету. Вы создаете новый элемент в хэше, где ключом является строка со значением «action», а значением этого элемента является «/account/login.php» (в данном случае это также строка, но я почти наверняка вы можете хранить другие вещи в хешах, кроме строк).

... гмм! Прошло много времени с тех пор, как я работал с Руби. Надеюсь, я все понял правильно. ;)

Некоторые хорошо выглядящие страницы здесь (более подробную информацию можно найти в поиске Google "ruby symbol")

http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols

http://www.troubleshooters.com/codecorn/ruby/symbols.htm#_What_are_symbols

2 голосов
/ 03 марта 2010

Используется для создания хеш-выражения , как в { key => value }.

Кроме того, при использовании в качестве последнего параметра в вызове метода { } не требуется, поэтому key => value может отображаться отдельно.

>> p({:a => 1, :b => 2})
{:a=>1, :b=>2}
=> nil
>> p :c=>3, :d=>4
{:d=>4, :c=>3}
=> nil
>> t = { :e=>5, :f=>6 }
=> {:f=>6, :e=>5}

Эта стенография действительно хороша в поэтическом режиме, где буквенный хэш после имени метода будет выглядеть как блок.

2 голосов
/ 03 марта 2010

Связывает значение с индексом для хэшей.

obj.method :text => /Log In/

является сокращением для

obj.method {:text => /Log In/}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...