Tcl - Verfahren

Prozeduren sind nichts anderes als Codeblöcke mit einer Reihe von Befehlen, die eine bestimmte wiederverwendbare Funktionalität bereitstellen. Es wird verwendet, um zu vermeiden, dass derselbe Code an mehreren Stellen wiederholt wird. Prozeduren entsprechen den in vielen Programmiersprachen verwendeten Funktionen und werden in Tcl mit Hilfe von zur Verfügung gestelltproc Befehl.

Die Syntax zum Erstellen einer einfachen Prozedur ist unten dargestellt:

proc procedureName {arguments} {
   body
}

Ein einfaches Beispiel für die Vorgehensweise ist unten angegeben -

#!/usr/bin/tclsh

proc helloWorld {} {
   puts "Hello, World!"
}
helloWorld

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

Hello, World!

Prozeduren mit mehreren Argumenten

Ein Beispiel für eine Prozedur mit Argumenten ist unten gezeigt -

#!/usr/bin/tclsh

proc add {a b} {
   return [expr $a+$b]
}
puts [add 10 30]

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

40

Prozeduren mit variablen Argumenten

Ein Beispiel für eine Prozedur mit Argumenten ist unten gezeigt -

#!/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 }]

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

65
66

Prozeduren mit Standardargumenten

Standardargumente werden verwendet, um Standardwerte bereitzustellen, die verwendet werden können, wenn kein Wert angegeben wird. Ein Beispiel für eine Prozedur mit Standardargumenten, die manchmal als implizite Argumente bezeichnet wird, ist unten dargestellt.

#!/usr/bin/tclsh

proc add {a {b 100} } {
   return [expr $a+$b]
}
puts [add 10 30]
puts [add 10]

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

40
110

Rekursive Prozeduren

Ein Beispiel für rekursive Prozeduren ist unten dargestellt -

#!/usr/bin/tclsh

proc factorial {number} {
   if {$number <= 1} {
      return 1
   } 
   return [expr $number * [factorial [expr $number - 1]]]

}
puts [factorial 3]
puts [factorial 5]

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

6
120