运营商*
的正确名称是什么,如function(*args)
中所示?解包,解压缩,别的什么?
答案 0 :(得分:151)
在Ruby和Perl 6中,这被称为“splat”,我认为来自这些社区的大多数人会明白你的意思,如果你这么说的话。
Python tutorial使用短语“解包参数列表”,这是一个很长且具有描述性的。我没有在Python中听到任何其他特定名称。
答案 1 :(得分:110)
我将其称为“位置扩展”,而不是我称之为“关键字扩展”的**
。
答案 2 :(得分:35)
Python Tutorial只是将其称为“*
- 运营商”。它执行arbitrary argument lists的解压缩。
答案 3 :(得分:16)
我说“star-args”,Python人似乎知道我的意思。
**
比较棘手 - 我认为只是“qargs”,因为它通常用作**kw
或**kwargs
答案 4 :(得分:14)
还可以调用*
收集参数(在函数参数定义中使用时)或散点运算符(在函数调用时使用)。 / p>
答案 5 :(得分:5)
我认为它最常被称为“splat operator”。 Unpacking arguments就是它的作用。
答案 6 :(得分:2)
技术术语是 Variadic function。因此,从某种意义上说,这是不考虑编程语言的正确术语。
也就是说,在不同的语言中,该术语确实有合法的名称。正如其他人所提到的,它在 ruby、julia 和其他几种语言中被称为“splat”,并在官方文档中以该名称注明。在 javascript 中,它被称为 "spread" syntax。正如其他答案中所述,它在许多其他语言中还有许多其他名称。不管你怎么称呼它,它都非常有用!
答案 7 :(得分:1)
我打电话给* args“star args”或“varargs”和** kwargs“keyword args”。
答案 8 :(得分:-1)
俗称“ splatting”。
对于参数(列表类型),您使用单个*
;对于关键字参数(字典类型),您使用双**
。
*
和**
有时也称为“飞溅”。
请参阅以下有关此名称的参考: https://stackoverflow.com/a/47875892/14305096