match, text, number = *"foobar 123".match(/([A-z]*) ([0-9]*)/)
Run Code Online (Sandbox Code Playgroud)
我知道这是在进行某种正则表达式匹配,但是splat在这里扮演什么角色,有没有办法在没有splat的情况下这样做,所以它不那么令人困惑?
splat将正则表达式匹配结果(a MatchData有三组:整个模式,字母和数字)分解为三个变量.所以我们最终得到:
match = "foobar 123"
text = "foobar"
number = "123"
Run Code Online (Sandbox Code Playgroud)
没有splat,只有一个结果(the MatchData),所以Ruby不知道如何将它分配给三个独立的变量.
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |