ruby等号登录方法调用

时间:2016-11-09 12:06:21

标签: ruby syntax

嗨,有红宝石家伙! 我在方法调用中遇到了一个奇怪的语法:

Foo.bar 'first_arg', more1='other', more2='another'

但是当我测试它时'other'始终被分配给第二个参数,不要介意等号之前的单词。这是什么?为什么这是红宝石?我熟悉ruby 2.0的关键参数,但这似乎与此无关。

2 个答案:

答案 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方法。那为什么呢?那么,在该调用之后可能会使用more1more2。我不喜欢它,但那就是它。