如何打印出一个tcl proc?
问题描述:
给出一个简单的TCL PROC像如何打印出一个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 {a b} {puts "$a $b"} % info body foo puts "$a $b" % info args foo a b
欲了解更多的好消息,请重新阅读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