我希望这段代码失败,因为逗号充当参数分隔符.没有第二个参数,foo只接受一个参数.
fn foo(_a: u8) {}
fn main() {
foo(3, );
}
Run Code Online (Sandbox Code Playgroud)
大多数语言都接受逗号分隔列表中的尾随逗号,如参数列表或元组或数组文字.如果您将列表拆分为多行,这将非常有用,例如:
let a = [
0,
1,
2,
3,
];
Run Code Online (Sandbox Code Playgroud)
由于所有行都以逗号结尾,因此您可以轻松地对编辑器中的行重新排序,并且差异在版本控制中看起来更干净,特别是在向列表末尾添加更多条目时.这似乎不是允许尾随逗号的强有力理由,但由于允许逗号逗号永远不会受到伤害,因此它足以作为理由.
请注意,Rust中的宏调用并不总是允许尾随逗号.
随着时间的推移,其他语言的历史也越来越宽松.JavaScript总是允许在数组文字中使用尾随逗号.他们允许它在EcmaScript 5中用于对象文字,在EcmaScript 2017中用于函数参数列表,而标准JSON仍然不允许使用尾随逗号.蟒蛇并没有让尾随逗号后*args和**kwargs直到最近,但现在他们也是允许的.
| 归档时间: |
|
| 查看次数: |
298 次 |
| 最近记录: |