Как распечатать Tcl Proc?
Учитывая простой процесс Tcl, как
proc foo {a b} {puts "$a $b"}
Какую команду tcl можно использовать для распечатки процедуры foo
... то есть я хочу вернуть текст прока...
Например:
% 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"}
назад?
3 ответа
% proc foo {a b} {помещает "$a $b"} % info body foo ставит "$a $b" % info args foo аб
Для получения дополнительной информации, перечитайте информацию (n).
@ Генри, это немного сложнее, чем если бы любой аргумент имел значения по умолчанию:
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