1

すべて同じパラメーターを持ついくつかのオブジェクトを作成したいので、それらを返すprocにそれらを格納しようとしました。ただし、インタープリターは、返された結果を複数ではなく 1 つのパラメーターとして評価します。私の手順は次のとおりです。

proc element_param {} {
    return "-filled 1\
        -visible 1\
        -linewidth 1\
        -linecolor yellow\
        -fillcolor yellow\
        -relief roundraised\
        -linewidth 2"
}

そして私はそれを使用します:

$this/zinc add rectangle 1 [list "100" "100" "200" "200"] [element_param]

それらをいくつかの異なるパラメータに変換するにはどうすればよいですか?

4

1 に答える 1

7

Tcl 8.5 以降では、{*} 演算子を使用してパラメーターのリストを展開します。

$this/zinc add rectangle 1 $coords {*}[element_param]

以前のバージョンでは、eval を使用してリストを展開できます。

eval [linsert [element_param] 0 $this/zinc add rectangle 1 $coords]

これは同等です。

于 2011-10-18T18:04:09.020 に答える