2010-03-03 23 views

回答

3

:text => /Log In/速记,你传递一个哈希pagelink_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

+0

跟进:什么是“变量”的叫?我需要做一些研究...... – Zombies 2010-03-03 21:56:58

+0

@僵尸:更新! – FrustratedWithFormsDesigner 2010-03-03 22:19:24

2

它关联与哈希索引的值。

obj.method :text => /Log In/ 

obj.method {:text => /Log In/} 
+1

mipadi说得没错。值得注意的是,这适用于采用散列的任何方法,但仅适用于该方法的最后一个参数。例如,你不能做obj.meth:key =>'val',5 – 2010-03-03 18:28:05

+1

(显然,你*仍然可以做'obj.meth {:key =''val'},5') – Matchu 2010-03-03 22:22:02

2

它用来创建一个哈希表达,为 “红宝石符号”)谷歌搜索发现在{ 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} 

这种速记在诗歌模式下非常好,其中方法名后面的文字哈希看起来像块。