補足:引数をブレスで挟むことのもうひとつの意味とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 補足:引数をブレスで挟むことのもうひとつの意味の意味・解説 

補足:引数をブレスで挟むことのもうひとつの意味

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/10 13:51 UTC 版)

Tcl/Tk」の記事における「補足:引数をブレスで挟むことのもうひとつの意味」の解説

Tcl パーサーから渡され引数コマンド内部評価されるか否かは重要である。ここでの評価とはコマンド置換変数置換のことである。例え算術演算を行う expr コマンド引数内部評価する。従って以下の2つコマンドは同じ結果返すexpr $a*$b expr {$a*$b} Tcl パーサーが行ってくれずとも、exprコマンド内部変数置換しているので同じ結果得られるのであるifコマンドwhileコマンドは第1引数として与えられ文字列を、コマンド内部expr によって評価しその結果を使う。 set val true if $val {~処理~} while $val {~処理~} Tcl パーサ第一引数の「$val」を評価してtrue」(文字列)に書き換える同様に第二引数「{~処理~}」を評価して文字列リテラルなのでそのまま同じ値「{~処理~}」に書き換え、以下のようにする。 if true {~処理~} while true {~処理~} Tcl パーサその後true と {~処理~} を if、while コマンド渡し、if、while コマンド側は受け取った文字列expr コマンドに「[expr true]」として渡しその結果をもって処理を続ける。気をつけなければならないのは while コマンドは {~処理~} をひと通り評価し終えた後、再度第一引数expr評価するが、上記コードでは与えられている値が true なので {~処理~} の中にset val falseのような文があったとしても、第一引数与えられた値そのもの変化しないので、ループ無限に繰り返すことになる({~処理~} の中に break コマンド含まれていない場合)。 set val true if {$val} {~処理~} while {$val} {~処理~} この場合Tcl パーサ引数を順に評価し第一引数として「{$val}」という4文字文字列リテラルを、第二引数として「{~処理~}」を、if、while コマンドに渡す。if、while コマンド側は受け取った文字列expr コマンドに「[expr {$val}]」として渡しその結果をもって処理を続ける。while コマンドは {~処理~} をひと通り評価し終えた後、再度第一引数expr評価するが、上記コードでは与えられている値が {$val} なので {~処理~} の中で「set val falseのような文があれば、その評価値も false になってその時点で繰り返し処理を終了する一方switchコマンドの第1引数内部では評価されない。したがって下記2番目の記述期待する結果得られないswitch $val {...} switch {$val} {...} もし引数コマンド内部評価してくれるならば、その引数ブレス({})で挟んで渡した方が効率良いTclパーサーコマンド両方による多重評価処理を回避できるからである。このような理由により、ifコマンドwhileコマンドやforコマンド引数は常にブレスで挟むべきである。特にループ条件式は必ずブレスで挟む必要があるブレス挟まない変数置換されてからループコマンドに渡されてしまうので、定数並べた条件式になってしまい、無限ループもたらす

※この「補足:引数をブレスで挟むことのもうひとつの意味」の解説は、「Tcl/Tk」の解説の一部です。
「補足:引数をブレスで挟むことのもうひとつの意味」を含む「Tcl/Tk」の記事については、「Tcl/Tk」の概要を参照ください。

ウィキペディア小見出し辞書の「補足:引数をブレスで挟むことのもうひとつの意味」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「補足:引数をブレスで挟むことのもうひとつの意味」の関連用語

1
12% |||||

補足:引数をブレスで挟むことのもうひとつの意味のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



補足:引数をブレスで挟むことのもうひとつの意味のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのTcl/Tk (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS