PowerFX V1.0 運用説明書 - Microsoft(R) Windows(R) -
目次 索引 前ページ次ページ

第3章 TCLplus> 3.3 TCLplusスクリプトの文法

3.3.6 プロシージャとスコープ

プロシージ

プロシージャとはTCLplusスクリプトで一連の処理を一つのコマンドとして定義したものです。
作成したプロシージャは既存のコマンドと同様に使用することができます。

例:
2つの引数の乗算結果を出力する

#プロシージャを定義
proc NEWCMD {a b} {
 return [expr $a * $b]
}

#プロシージャの実行結果をpara1に格納
set para1 [NEWCMD 3 4]
puts $para1


変数のスコー

作成した変数の有効範囲をスコープと呼びます。変数の作成位置により、その変数を参照できる範囲が異なります。
プロシージャの内部で作成された変数は局所変と呼び、プロシージャの内部でのみ有効です。
また、プロシージャの外部で作成された変数は大域変と呼び、プロシージャの外部でのみ有効です。

例:
局所変数と大域変数で同じ変数名を使用する。

set x 10
set y 20
puts "大域変数x,yに10,20を格納"

proc NEWCMD {s t} {
  set x $s
  set y $t
  puts "局所変数x,yに$s,$tを格納"
  puts "   局所変数xの値は$x"
  puts "   局所変数yの値は$y"
}

#局所変数x,yに30,40を格納
NEWCMD 30 40

puts "局所変数x,yはプロシージャNEWCMD内でのみ有効であるため大域変数x,yには影響しない"
puts "   大域変数xの値は$x"
puts "   大域変数yの値は$y"

実行結果:

大域変数x,yに10,20を格納
局所変数x,yに30,40を格納
   局所変数xの値は30
   局所変数yの値は40
局所変数x,yはプロシージャNEWCMD内でのみ有効であるため大域変数x,yには影響を与しない
   大域変数xの値は10
   大域変数yの値は20



目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005