Tcl - Thủ tục
Các thủ tục không có gì khác ngoài các khối mã với một loạt lệnh cung cấp một chức năng có thể tái sử dụng cụ thể. Nó được sử dụng để tránh lặp lại cùng một mã ở nhiều vị trí. Các thủ tục tương đương với các hàm được sử dụng trong nhiều ngôn ngữ lập trình và được tạo sẵn trong Tcl với sự trợ giúp củaproc chỉ huy.
Cú pháp tạo một thủ tục đơn giản được hiển thị bên dưới:
proc procedureName {arguments} {
body
}
Dưới đây là một ví dụ đơn giản cho quy trình:
#!/usr/bin/tclsh
proc helloWorld {} {
puts "Hello, World!"
}
helloWorld
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Thủ tục với nhiều đối số
Dưới đây là một ví dụ về thủ tục với các đối số:
#!/usr/bin/tclsh
proc add {a b} {
return [expr $a+$b]
}
puts [add 10 30]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
40
Thủ tục với các đối số có thể thay đổi
Dưới đây là một ví dụ về thủ tục với các đối số:
#!/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 }]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
65
66
Thủ tục với các đối số mặc định
Đối số mặc định được sử dụng để cung cấp các giá trị mặc định có thể được sử dụng nếu không có giá trị nào được cung cấp. Dưới đây là một ví dụ về thủ tục có đối số mặc định, đôi khi được gọi là đối số ngầm định:
#!/usr/bin/tclsh
proc add {a {b 100} } {
return [expr $a+$b]
}
puts [add 10 30]
puts [add 10]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
40
110
Thủ tục đệ quy
Dưới đây là một ví dụ cho các thủ tục đệ quy:
#!/usr/bin/tclsh
proc factorial {number} {
if {$number <= 1} {
return 1
}
return [expr $number * [factorial [expr $number - 1]]]
}
puts [factorial 3]
puts [factorial 5]
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
6
120