在 function(*args) 这个例子中,* 这个符号的正确名称是什么呢?是“解包”、“解压”还是其他什么名字呢?
function(*args)
*
在Python教程中,这个东西被称为“*运算符”。它的作用是把一些不定数量的参数拆开。
我把它叫做“位置扩展”,而把**称为“关键字扩展”。
**
在Ruby和Perl 6中,这个概念被称为“splat”,我觉得那些社区的人听到这个词都会明白你在说什么。
Python的教程中使用了“解包参数列表”这个说法,虽然这个名字比较长,但描述得很清楚。
它也被称为可迭代解包,而对于**的情况,则叫做字典解包。