给定一个简单的 tcl proc
proc foo {a b} {puts "$a $b"}
我可以使用什么 tcl 命令来打印出程序foo
……也就是说,我想要返回 proc的文本……
例如:
% proc foo {a b} {puts "$a $b"}
% foo a b
a b
% puts $foo
can't read "foo": no such variable
我怎么foo {a b} {puts "$a $b"}
回来?
给定一个简单的 tcl proc
proc foo {a b} {puts "$a $b"}
我可以使用什么 tcl 命令来打印出程序foo
……也就是说,我想要返回 proc的文本……
例如:
% proc foo {a b} {puts "$a $b"}
% foo a b
a b
% puts $foo
can't read "foo": no such variable
我怎么foo {a b} {puts "$a $b"}
回来?
% proc foo {ab} {puts "$a $b"} % 信息正文 foo 放“$a $b” % 信息参数 foo 抗体
如需更多好东西,请重新阅读 info(n)。
@Henry,如果任何参数具有默认值,它会比这更复杂一些:
proc foo {a {b bar}} {
puts "$a $b"
}
proc info:wholeproc procname {
set result [list proc $procname]
set args {}
foreach arg [info args $procname] {
if {[info default $procname $arg value]} {
lappend args [list $arg $value]
} else {
lappend args $arg
}
}
lappend result [list $args]
lappend result [list [info body $procname]]
return [join $result]
}
info:wholeproc foo
使用 TclX 的 showproc:
package require Tclx
showproc foo