プロシージャ
procとreturnの使用
procはC言語の関数のようなもので、同じようにreturnによって値を返す。
procで定義したaddは2つの引数を足し算する。
C言語しかわからない私は、addを使用する側の"[ ]"がなんか慣れない。
procで定義したaddは2つの引数を足し算する。
C言語しかわからない私は、addを使用する側の"[ ]"がなんか慣れない。
プログラム
- proc1.tcl
#!/bin/sh
# \
exec tclsh "$0" "$@"
proc add { x y } {
return [ expr $x+$y ]
}
set a 10
set b 15
set ans1 [ add $a $b ]
set ans2 [ add 53 23 ]
puts $ans1
puts $ans2
exit
実行
$ ./proc1.tcl 25 76
procとupvarの使用
upvarはC言語でよく使用する引数にアドレスを渡すやりかたやC++の参照渡しような感じに似ている気がする。
どうやらmultの第1引数のansを固定してそこへ値を返すようにしている。
どうやらmultの第1引数のansを固定してそこへ値を返すようにしている。
プログラム
- proc2.tcl
#!/bin/sh
# \
exec tclsh "$0" "$@"
proc mult { ans x y } {
upvar $ans result
set result [ expr $x * $y ]
}
mult ret 5 3
puts $ret
exit
実行
$ ./proc2.tcl 15
