如何解决一元* 运算符在这段 Ruby 代码中做了什么?
是 splat*
运算符。 __
它将 an
扩展Array
为参数列表,在本例中是Hash.[]
方法的参数列表。(更准确地说,它扩展了任何响应to_ary
/的对象to_a
,或者to_a
在
Ruby 1.9 中。)
为了说明,以下两个语句是相等的:
method arg1, arg2, arg3
method *[arg1, arg2, arg3]
它也可以在不同的上下文中使用,以捕获方法定义中所有剩余的方法参数。在这种情况下,它不会扩展,而是结合:
def method2(*args) # args will hold Array of all arguments
end
解决方法
给定 Ruby 代码
line = "first_name=mickey;last_name=mouse;country=usa"
record = Hash[*line.split(/=|;/)]
除了 *
操作员之外,我了解第二行中的所有内容 - 它在做什么以及文档在哪里?(正如您可能猜到的那样,寻找这个案例很困难......)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。