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/

10-15 20:33