es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Plantilla de procesamiento de argumentos TCL, por qué [set argv {}]

A continuación se muestra una plantilla del wiki de tcl enlace, este código se puede utilizar para procesar argumentos de línea de comandos tcl.
Me pregunto por qué necesitamos [set argv {}] en la línea 7.


<h1>Si este script fue ejecutado y no solo se "source"d, manejar argv</h1> <p>if {

&& [ file dirname [file normalize

/...]] eq [ file dirname [file normalize $argv0/...]]} {</p> <pre><code>mientras {[llength $argv]} { puts [list ooo $argv] set argv [lassign $argv[set argv {}] flag] ; # Notar Aquí switch -glob $flag { -bool { set bool 1 } -option { set argv [lassign $argv[set argv {}] value] } -- break -* { return -code error [list {opción desconocida} $flag] } por defecto { set argv [list $flag {*}$argv] break } } } </code></pre> <p>}</p> <p>foreach archivo $argv { puts [format "archivo: %s" $archivo] }</p>
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La razón por la que necesitamos [set argv {}] en la línea 7 es para vaciar la lista argv antes de asignar el próximo valor. Esto asegura que la lista siempre tenga un elemento menos después de que se ejecute el comando set argv [lassign $argv[set argv {}] flag], evitando posibles errores o comportamientos inesperados.

Comments are closed.