プロシージャ
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