嗨,有红宝石家伙! 我在方法调用中遇到了一个奇怪的语法:
Foo.bar 'first_arg', more1='other', more2='another'
但是当我测试它时'other'
始终被分配给第二个参数,不要介意等号之前的单词。这是什么?为什么这是红宝石?我熟悉ruby 2.0的关键参数,但这似乎与此无关。
答案 0 :(得分:3)
这与关键参数无关。
这只是分配变量并将变量传递给方法的捷径。
Foo.bar 'first_arg', more1='other', more2='another'
可以改写为
more1='other'
more2='another'
Foo.bar('first_arg', more1, more2)
答案 1 :(得分:0)
'other'
已分配给变量more1
,结果表达式始终为'other'
,因此该值会传递给bar
方法。那为什么呢?那么,在该调用之后可能会使用more1
和more2
。我不喜欢它,但那就是它。