Tcl - Procédures
Les procédures ne sont rien d'autre que des blocs de code avec une série de commandes qui fournissent une fonctionnalité réutilisable spécifique. Il est utilisé pour éviter que le même code ne soit répété à plusieurs endroits. Les procédures sont équivalentes aux fonctions utilisées dans de nombreux langages de programmation et sont rendues disponibles dans Tcl à l'aide deproc commander.
La syntaxe de création d'une procédure simple est indiquée ci-dessous -
proc procedureName {arguments} {
body
}
Un exemple simple de procédure est donné ci-dessous -
#!/usr/bin/tclsh
proc helloWorld {} {
puts "Hello, World!"
}
helloWorld
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -
Hello, World!
Procédures avec plusieurs arguments
Un exemple de procédure avec des arguments est présenté ci-dessous -
#!/usr/bin/tclsh
proc add {a b} {
return [expr $a+$b]
}
puts [add 10 30]
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -
40
Procédures avec des arguments variables
Un exemple de procédure avec des arguments est présenté ci-dessous -
#!/usr/bin/tclsh
proc avg {numbers} {
set sum 0
foreach number $numbers {
set sum [expr $sum + $number]
}
set average [expr $sum/[llength $numbers]]
return $average
}
puts [avg {70 80 50 60}]
puts [avg {70 80 50 }]
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -
65
66
Procédures avec des arguments par défaut
Les arguments par défaut sont utilisés pour fournir des valeurs par défaut qui peuvent être utilisées si aucune valeur n'est fournie. Un exemple de procédure avec des arguments par défaut, parfois appelés arguments implicites, est présenté ci-dessous -
#!/usr/bin/tclsh
proc add {a {b 100} } {
return [expr $a+$b]
}
puts [add 10 30]
puts [add 10]
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -
40
110
Procédures récursives
Un exemple de procédures récursives est présenté ci-dessous -
#!/usr/bin/tclsh
proc factorial {number} {
if {$number <= 1} {
return 1
}
return [expr $number * [factorial [expr $number - 1]]]
}
puts [factorial 3]
puts [factorial 5]
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -
6
120