Процедуры — это не что иное, как блоки кода с серией команд, которые обеспечивают определенную функциональность многократного использования. Он используется, чтобы избежать повторения одного и того же кода в нескольких местах. Процедуры эквивалентны функциям, используемым во многих языках программирования, и доступны в Tcl с помощью команды proc .
Синтаксис создания простой процедуры показан ниже —
proc procedureName {arguments} { body }
Простой пример процедуры приведен ниже —
#!/usr/bin/tclsh proc helloWorld {} { puts "Hello, World!" } helloWorld
Когда приведенный выше код выполняется, он дает следующий результат —
Hello, World!
Процедуры с несколькими аргументами
Пример для процедуры с аргументами показан ниже —
#!/usr/bin/tclsh proc add {a b} { return [expr $a+$b] } puts [add 10 30]
Когда приведенный выше код выполняется, он дает следующий результат —
40
Процедуры с переменными аргументами
Пример для процедуры с аргументами показан ниже —
#!/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 }]
Когда приведенный выше код выполняется, он дает следующий результат —
65 66
Процедуры с аргументами по умолчанию
Аргументы по умолчанию используются для предоставления значений по умолчанию, которые можно использовать, если значение не указано. Пример процедуры с аргументами по умолчанию, которые иногда называют неявными аргументами, показан ниже —
#!/usr/bin/tclsh proc add {a {b 100} } { return [expr $a+$b] } puts [add 10 30] puts [add 10]
Когда приведенный выше код выполняется, он дает следующий результат —
40 110
Рекурсивные процедуры
Пример для рекурсивных процедур показан ниже —
#!/usr/bin/tclsh proc factorial {number} { if {$number <= 1} { return 1 } return [expr $number * [factorial [expr $number - 1]]] } puts [factorial 3] puts [factorial 5]
Когда приведенный выше код выполняется, он дает следующий результат —