ruby – 啪啪啪啪啪
发布时间:2020-12-16 19:18:33 所属栏目:百科 来源:网络整理
导读:哈希上的splat将其转换为数组. [* {foo :: bar}]#= [[:foo,:bar]] 是否有一些隐藏的机制(如隐式类转换)在这里,或者它是一个内置的原始功能? 除了数组之外,在Ruby 1.9下使用splat运算符消失/改变的唯一内容是nil和hash吗? 解决方法 splat将尝试将对象显式
>哈希上的splat将其转换为数组.
[* {foo :: bar}]#=> [[:foo,:bar]] 是否有一些隐藏的机制(如隐式类转换)在这里,或者它是一个内置的原始功能? 解决方法
splat将尝试将对象显式转换为Array.
为此,它将发送to_a并期望一个Array作为结果. class Foo def to_a [1,2,3] end end a,b,c = *Foo.new a # => 1 如果对象没有响应to_a,则没有效果,例如[* 42] == [42] 许多内置类实现to_a.特别是: >(因为它们包括Enumerable) >数组 >(附加课程) > NilClass 因此,所有这些都可以被喷溅: match,group,next_group = *"Hello,world".match(/(.*),(.*)/) group # => "Hello" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |