あなたがすべきだと思うのは、弾丸を噛んでコールを変更することです. 結局のところ、これはかなり単純な検索と置換です。他のソリューションを使用する場合よりも、コードはより健全になります。
check_file_exists name
または、別のパラメーターをパラメーター リストに追加し、それを使用して名前を渡し、最初の引数を仮引数にすることもできます。
check_file_exists $name name
または、戻り値を使用していない場合は、新しい値を返して代入することができます。
set name [check_file_exists $name]
または、新しい値をtheValue
プロシージャ内のグローバル変数 (例: ) に割り当て、それを元に戻すこともできます。
check_file_exists $name
# don't need this if you're in global scope
global theValue
set name $theValue
または、名前をグローバル変数 (例: theName
) に割り当てて、プロシージャ内でアクセスすることもできます。プロシージャはname
直接更新できます。
# don't need this if you're in global scope
global theName
set theName name
check_file_exists $name
(この fi には、 を使用したいくつかのバリエーションがありますupvar
。)
代替手段はどれもきれいではなく、呼び出し時に変更を加える必要があります (この値に 1 つの変数しか使用しない場合は、最後のものを除きます)。info frame
それをしないことに固執している場合は、手順自体を変更するだけで済むDonalのソリューションが常にあります.
これらの代替手段の手順コードについてサポートが必要な場合はお知らせください。