3

在 Ruby 1.9.3 中,我有一个带有单个参数的函数。如果我正确调用它,它可以使用或不使用空格分隔其名称和括号。如果我传递一个额外的参数,它会以两种不同的方式失败。为什么?

irb(main):001:0> def f(a); a; end
=> nil
irb(main):002:0> f(1)
=> 1
irb(main):003:0> f(1, 2)
ArgumentError: wrong number of arguments (2 for 1)
        from (irb):1:in 'f'
        from (irb):3
        from /usr/bin/irb:12:in '<main>'
irb(main):004:0> f (1)
=> 1
irb(main):005:0> f (1, 2)
SyntaxError: (irb):5: syntax error, unexpected ',', expecting ')'
f (1, 2)
     ^
        from /usr/bin/irb:12:in '<main>'
irb(main):006:0> RUBY_DESCRIPTION
=> "ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]"
4

1 回答 1

9
于 2013-05-06T10:56:00.617 回答