Il comando info, che abbiamo iniziato a conoscere nei due precedenti articoli, include una serie di altri sottocomandi per ottenere diverse informazioni sulle procedure:
info body procName: restituisce il corpo della proceduraprocName.info args procName: restituisce la lista dei nomi degli argomenti della proceduraprocName.info default procName arg varName: restituisce1se l’argomentoargdella proceduraprocNameha un valore di default e, in tal caso, assegna questo valore di default alla variabilevarName, altrimenti restituisce0.
Conoscere queste informazioni ci permette di:
- Accedere ai contenuti di una procedura da un debugger.
- Generare delle procedure ad hoc da una procedura utilizzata come modello (template).
- Ottenere dei valori di default quando si deve immettere dei valori in input.
Esempio
proc myProc {arg1 {arg2 "Giovanni"}} {
puts "arg1: $arg1"
puts "arg2: $arg2"
}
puts "Step #1"
myProc Stefania
puts "\nStep #2"
myProc Maria Luca
puts "\nStep #3: body"
puts [info body myProc]
puts "\nStep #4: args"
puts [info args myProc]
puts "\nStep #5: default"
puts "arg1: [info default myProc arg1 myVar] | myVar: $myVar"
puts "arg2: [info default myProc arg2 myVar] | myVar: $myVar"
---
Step #1
arg1: Stefania
arg2: Giovanni
Step #2
arg1: Maria
arg2: Luca
Step #3: body
puts "arg1: $arg1"
puts "arg2: $arg2"
Step #4: args
arg1 arg2
Step #5: default
arg1: 0 | myVar:
arg2: 1 | myVar: Giovanni
Nel prossimo articolo discuteremo di debugging e di errori.