在tcl中,有一些我不熟悉的代码习惯用法,dict creat中的{*}是什么意思?
namespace eval ::resistorColor {
variable colors [dict create {*}{
black 0
brown 1
red 2
orange 3
yellow 4
green 5
blue 6
violet 7
grey 8
white 9
}]
}
Run Code Online (Sandbox Code Playgroud)
这不是一个习语,它是 Tcl 语法的基本规则之一: https: //www.tcl.tk/man/tcl/TclCmd/Tcl.html#M9。
此处使用它是因为字典的键/值对已被编写为包含在 中的列表{},这允许将它们编写在单独的行上。但该dict create命令不需要单个列表,它希望将键和值作为单独的参数传递。So{*}用于将该列表拆分为命令的单独参数dict。
另一种方法是使用反斜杠在多行上继续 dict 的参数列表:
variable colors [dict create \
black 0 \
brown 1 \
red 2 \
...etc...
Run Code Online (Sandbox Code Playgroud)