name - 給新程序一個名子
args - 參數清單. 不帶參數也可, 放一組空大括號 {} 即可.
body - 呼叫程序時要被執行的程式碼
proc add {op1 op2} {
puts [expr $op1 + $op2]
}
add 5 6
add 3 2
add 1 2
Output:
5
3
RETURN
程序回傳值. 命令回傳執行的結果, 被回傳的值用來當作命令的代換結果.
proc sum {val} {
set sum 0
for {set i 1} {$i <= $val} {incr i} {
incr sum $i
return $sum
}
}
puts [sum 5]
Output
Define Variable
$val2 已被定義為 1, 如 add 時沒給第2個參數, 則 $val2 的值就是 1.
如果 val2 後還有 val3, val4..... 等, 則val2 後的所有變數都要有值.
Wrong example: proc add {val1 {val2 1} val3}
此例的 val3也要有值.
proc add {val1 {val2 1}} {
return [expr $val1+$val2]
}
puts [add 3 4]
puts [add 5] -----> 沒給第2個參數, 則 $val2 的值就是 1, 所以是 5+1=6
Output:
6
不固定數量的參數
proc add {val args} {
set result $val
foreach {item} $args {
incr result $item
return $result
}
}
puts [add 3]
puts [add 1 2 3 4 5 6] ---> 2~6 會以清單的格式存在 args.
Output:
21
沒有留言:
張貼留言