1

別のプロシージャをラップして、次のようにいくつかの引数を渡すTclプロシージャがあります。

proc OuterProc {
  ...some code here...
  InnerProc $a $b
}

proc InnerProc { a, b } {
  set someVar1 [split $a]
  set someVar2 [split $b]
  ...error: cannot read variable a or b
}

InnerProc2つの引数が渡されているのを確認できないのはなぜですか?

ありがとう

4

1 に答える 1

4

質問に示されている問題は、引数リストにコンマがあることです。Tcl では通常、コンマではなく空白を使用して引数を区切ることに注意してください。

proc OuterProc {} {
    set x foo
    set y bar
    InnerProc $x $y
}
proc InnerProc {a b} {
    puts "a=$a"
    puts "b=$b"
}
OuterProc

生産する

a=foo
b=bar

OuterProc プロシージャでさまざまな変数名を使用して、ローカル変数が何であれ、Tcl はを次の proc に渡すことを示しました。

それが問題でない場合は、実際のコードが何であるかをより具体的に示す必要があります。

于 2012-12-28T18:48:39.303 に答える