bambooflow Note

proc

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

プロシージャ


procとreturnの使用

procはC言語の関数のようなもので、同じようにreturnによって値を返す。
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を固定してそこへ値を返すようにしている。


プログラム

  • 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
記事メニュー
ウィキ募集バナー