Tcl Tutorial Lesson 29

Information about procs - info

Previous lesson | Index | Next lesson

The info command includes a set of subcommands that will provide all the info you could want about a proc. These subcommands will return the body of a proc, the arguments to the proc, and the value of any default arguments.

These subcommands can be used to:

  • Access the contents of a proc in a debugger.
  • Generate custom procs from a template.
  • Report default values while prompting for input.

Info commands that return information about a proc

info args procname
Returns a list of the names of the arguments to the procedure procname.
info body procname
Returns the body of the procedure procname.
info default procname arg varName
Returns 1 if the argument arg in procedure procName has a default, and sets varName to that default. Otherwise, returns 0.

Example

proc demo {argument1 {default "DefaultValue"} } {
 puts "This is a demo proc."
 puts " It is being called with $argument1 and $default"
 #
 # We can use [info level] to find out if a value was given for
 # the optional argument "default" ...
 #
 puts "Actual call: [info level [info level]]"
}
puts "The args for demo are: [info args demo]\n"
puts "The body for demo is: [info body demo]\n"
set arglist [info args demo]
foreach arg $arglist {
 if { [info default demo $arg defaultval] } {
 puts "$arg has a default value of $defaultval"
 } else {
 puts "$arg has no default"
 }
}
Resulting output
The args for demo are: argument1 default
The body for demo is:
 puts "This is a demo proc."
 puts " It is being called with $argument1 and $default"
 #
 # We can use [info level] to find out if a value was given for
 # the optional argument "default" ...
 #
 puts "Actual call: [info level [info level]]"
argument1 has no default
default has a default value of DefaultValue

Previous lesson | Index | Next lesson

Updated 2017年09月14日 10:56:26

AltStyle によって変換されたページ (->オリジナル) /