我在Rails应用程序中看到了一些我正在审查的内容,我预计会出现错误,但它正在运行。我对使用此参数调用此方法的方式感到困惑。没有空格,只有两个单词用冒号分隔:
ree-1.8.7-2012.02 :001 > def muffin(x)
ree-1.8.7-2012.02 :002?> puts x.inspect
ree-1.8.7-2012.02 :003?> end
=> nil
ree-1.8.7-2012.02 :004 > muffin:tuffin
:tuffin
也适用于字符串:
ree-1.8.7-2012.02 :004 > muffin'd'
"d"
这是预期和正确的事情吗?
答案 0 :(得分:4)
Ruby拥有业界最轻松的语法之一。是的,空间是可选的。如果您希望您的同事看到正在发生的事情,请尝试muffin(:tuffin)
。
更进一步,你可以写:
def muffin x
另一个“因为我能”的例子并不是做某事的正当理由。 Ç - ;
答案 1 :(得分:3)
在ruby中,可以在没有括号的情况下调用方法:
puts 'string' #returns string
puts'string' #returns string
如果是字符串和符号,则空格是可选的。
puts10 #NameError: undefined local variable or method `puts10' for main:Object
puts 10 #returns 10
另请注意使用空间引入的差异:
[1,2,3,4].count + 1 #returns 5
[1,2,3,4].count +1 #returns 1 (calls method [1,2,3,4].count with +1 as an argument)