match, text, number = *"foobar 123".match(/([A-z]*) ([0-9]*)/)
我知道这是在做某种正则表达式匹配,但是 splat 在这里扮演什么角色,有没有办法在没有 splat 的情况下做到这一点,所以它不那么令人困惑?
最佳答案
由于 a,b = [c,d]
与 a,b = *[c,d]
相同,并且 splat 在其操作数不是数组时调用 to_a
,因此您可以简单地显式调用 to_a 而不需要 splat:
match, text, number = "foobar 123".match(/([A-z]*) ([0-9]*)/).to_a
不知道这是否不那么令人困惑,但它没有飞溅。
关于ruby - splat在这里做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1456146/