您好,我正在研究一些 Ruby 代码。在 Ruby 中实现快速排序:
1 def qsort(lst)
2 return [] if lst.empty?
3 x, *xs = *lst
4 less, more = xs.partition{|y| y < x}
5 qsort(less) + [x] + qsort(more)
6 end
鉴于:
lst = [1, 2, 3, 4, 5]
x, *xs = *lst
我不知道我是否理解第 3 行的操作正确:
根据我的观察和实验,这将分配1
fromlst
到x
,其余的lst
to xs
。
我还发现这两个在做同样的事情:
x, *xs = *lst
相当于
x, *xs = lst
我的问题是,这个不错的功能的名称是什么(我会在之后编辑标题以适应)?然后我可以自己研究更多关于这个 Ruby 特性的信息。对不起,如果这是一个重复的问题,因为我不知道要搜索这个问题的关键字。