TCL:什么&x27*';和'-';在format命令中指示

TCL:什么&x27*';和'-';在format命令中指示,tcl,Tcl,在我的例子中,我知道“-”告诉解释器正确 但是“*”在这里表示什么呢?取下一个参数并将其用作字段宽度 对于示例10中的第一个字段,对于第二个和第三个字段,没有进一步的参数 -是不相关的。它使字段左对齐。但这已经是字符串(s)的默认值 从: 可选精度/边界 转换说明符的第四部分是精度,它由一个周期后跟一个数字组成。对于不同的转换,数字以不同的方式使用。对于e、e和f转换,它指定小数点右侧显示的位数。对于g和g转换,它指定要显示的总位数,包括小数点两侧的位数(但是,除非指定了#标志,否则小数点后的尾

在我的例子中,我知道“-”告诉解释器正确


但是“*”在这里表示什么呢?

取下一个参数并将其用作字段宽度

对于示例
10
中的第一个字段,对于第二个和第三个字段,没有进一步的参数

-
是不相关的。它使字段左对齐。但这已经是字符串(
s
)的默认值

从:

可选精度/边界 转换说明符的第四部分是精度,它由一个周期后跟一个数字组成。对于不同的转换,数字以不同的方式使用。对于
e
e
f
转换,它指定小数点右侧显示的位数。对于
g
g
转换,它指定要显示的总位数,包括小数点两侧的位数(但是,除非指定了
#
标志,否则小数点后的尾随零仍将被忽略)。对于整数转换,它指定要打印的最小位数(如有必要,将添加前导零)。对于
s
转换,它指定要打印的最大字符数;如果字符串长于此长度,则将删除尾随字符如果使用
*
而不是数字指定精度,则format命令的下一个参数确定精度;它必须是数字字符串。


这里一切都很好,我对#flag感到困惑。你能简单解释一下吗?@user2720323它的意思是“使用替代形式”,它在该页面的更高一层有完整的定义(比如,更高一层的几个段落)。它很少使用;我不记得在实践中见过它,我也从来没有需要过它。@DonalFellows我认为它只有在
g
中才有用,如果你想证明你在科学应用中获得了这种精度-显示的精度告诉你一些关于计算精度的信息-不要用300000000来显示光速,使用
%#.3g
显示它。
% format "| %-*s | %-*s |" 2 "Index" 10 "Power"
| Index | Power      |
%