【发布时间】:2022-11-02 04:21:00
【问题描述】:
在 TCL 中,使参数可选的方法是给它一个默认值。不知道还有没有其他方法。例如
proc my_func {a b c {d 10} {e 11} {f 12}} {
...
}
现在在上面的例子中,参数 a、b 和 c 是强制性的。参数 d、e 和 f 是可选的。还有另一种创建可选参数的方法吗?
我需要创建一个可以从具有一些可选参数的 TCL 终端(在 Xilinx Vivado 中)调用的参数。用户决定传递一些或全部可选参数或根本不传递。问题是,当使用位置参数传递时,不可能告诉 TCL 我们将哪个可选参数传递给它。解决方案是什么?例如
my_func 1 2 3 4 5 6
应调用具有值 a=1、b=2、c=3、d=4、e=5 和 f=6 的 my_func。还,
my_func 1 2 3 4
应使用值 a=1、b=2、c=3 和 d=4 调用 my_func,并且 e、f 保留其默认值。但是,我可能需要做这样的事情
my_func 1 2 3 100
我将 100 传递给 f 并将 c 和 d 保留为默认值。但是上面的语句会将 d 设置为 100,并将 e 和 f 保留为默认值。
什么是解决方案,因为我显然不能在这里使用位置参数技术。
【问题讨论】:
标签: tcl