Ramaze.start :port => 80如果我的理解正确的话,上面这行代码是Ruby中的一个方法调用,你也可以这样写:
Ramaze.start(:port => 80)但是在任何一种情况下,当您将=>字符放在符号:port和数字80之间时,这意味着什么?
这是创建Hash的一种方式吗?
当Ramaze.start方法接收方法参数时,参数的类型是什么?
它是作为单参数键值对接收的吗?
或者它作为两个参数接收::port和80?
发布于 2009-05-02 23:20:00
它创建一个hashmap,其中符号:port是键,值是80。
发布于 2009-05-03 00:23:21
如果您的方法的最后一个参数是散列,则大括号是可选的。
示例:
def foo options
# ...
end那么这是被允许的:
foo :bar => :baz但如果你有:
def foo options, say_hi
# ...
if say_hi
puts 'Hi!'
end
end那么你就不能这样做:
foo :bar => :baz, true但你必须这样称呼它:
foo({:bar => :baz}, true)虽然我不明白为什么在这种情况下需要括号,但它们似乎是必需的。
发布于 2009-05-02 23:40:47
它叫lambda。这是一种声明方法的简单方法。例如,我可以说myBirthday => myBirthday.Where(某个值)。请注意,您是如何将对象本身传递给缩短函数的。在本例中,您传入了一个port,并将其值设为80,然后返回port对象。
https://stackoverflow.com/questions/815866
复制相似问题