这是干什么用的?我在这里找到了这个例子,但除此之外,它是什么意思?我无法在google上找到任何内容,因为我不确定在这种情况下甚至会调用'=>'。Ruby =>操作符...例如::text => /登录/
更多的例子在这里: http://mechanize.rubyforge.org/mechanize/EXAMPLES_rdoc.html
这是干什么用的?我在这里找到了这个例子,但除此之外,它是什么意思?我无法在google上找到任何内容,因为我不确定在这种情况下甚至会调用'=>'。Ruby =>操作符...例如::text => /登录/
更多的例子在这里: http://mechanize.rubyforge.org/mechanize/EXAMPLES_rdoc.html
在: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”(在这种情况下,也是一个字符串,但我是很确定除了字符串之外,你可以将其他东西存储在哈希中)。
...哇!自从我与Ruby合作已经有一段时间了。我希望我明白了一切。 ;)
一些很好的在这里寻找页面(更可以通过为
http://glu.ttono.us/articles/2005/08/19/understanding-ruby-symbols
http://www.troubleshooters.com/codecorn/ruby/symbols.htm#_What_are_symbols
它关联与哈希索引的值。
obj.method :text => /Log In/
是
obj.method {:text => /Log In/}
mipadi说得没错。值得注意的是,这适用于采用散列的任何方法,但仅适用于该方法的最后一个参数。例如,你不能做obj.meth:key =>'val',5 – 2010-03-03 18:28:05
(显然,你*仍然可以做'obj.meth {:key =''val'},5') – Matchu 2010-03-03 22:22:02
它用来创建一个哈希表达,为 “红宝石符号”)谷歌搜索发现在{ 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}
这种速记在诗歌模式下非常好,其中方法名后面的文字哈希看起来像块。
跟进:什么是“变量”的叫?我需要做一些研究...... – Zombies 2010-03-03 21:56:58
@僵尸:更新! – FrustratedWithFormsDesigner 2010-03-03 22:19:24