Tcl/tk の初心者で、手順で配列にアクセスする際に問題に直面しています
以下は私の問題文です
proc myproc {args} {
set aaa ""
set bbb ""
set ccc ""
foreach "field value" $args {
set $field $value
}
# assigning input args values to an array a
set a(3:0) $aaa
set a(6:4) $bbb
set a(25:7) $ccc
#do some computation on input arguments may be addition
#
#
#
# now the result am trying to fetch into another array b
set $b(word0) $x
set $b(word1) $y
set $b(word2) $z
set $b(word3) $u
return [array get b]
}
ここで、引数を myproc に渡し、アクセスする必要がある配列を返す必要があります。
set args_1 "g 1 h 4 k 6"
以下の構文を試してみましたが、エラーが発生しました。
array set a [myproc[array get $args_1]]
誰かがこの問題を解決するのを手伝ってくれますか
プロシージャ myproc の入力として文字列を指定しようとしています
後でその入力値を使用して計算を試みます。
後ですべての計算が文字列値のセットを取得した後、以下のように配列に割り当てられます
set $b(word0) $x
set $b(word1) $y
set $b(word2) $z
set $b(word3) $u
b
この配列をリターンとして送信したい。
例:
proc myproc {} {
set $b(word0) $x
set $b(word1) $y
set $b(word2) $z
set $b(word3) $u
return [array get b]
}
以下のように配列 b にアクセスしようとしました
array set a [myproc[array get b]]
それは機能しました:)関数の呼び出しで新しい配列を作成できました。
ただし、文字列引数を myproc に渡し、配列として返す必要があります