2010-07-30 35 views
7

tengo código aquíCómo poner bloquear los comentarios en TCL

proc checkPrime {no} { 
    set i 1 
    set count 0 
    while {$i < $no} { 
     if {{$no%$i} eq 0} { 
      incr count 
     } 
     if {$count eq 2} { 
      puts "the number is prime number" 
      return 
     } 
     incr i 
    } 
} 

quiero poner todo el procedimiento en un solo comentario, no quiero poner a cada línea con #, ¿hay alguna posibilidad, como en Java/* .. */con todo el código comentado, como ese en tcl. y también quiero que parte del texto se ponga solo comentario

+0

Un par de errores en su código: use 'eq' para la igualdad de cadenas,' == 'para la igualdad numérica; 'if {{$ no% $ i} eq 0}' debería ser 'if {($ no% $ i) == 0}' –

+0

Otra implementación para verificar si un número es primo está en rosettacode.org: http://rosettacode.org/wiki/Primality_by_trial_division#Tcl –

Respuesta

17

Además del if {0} .. que es idiomático (y uno que la mayoría de los programadores de tcl reconocen) también puede usar cualquier otro constructo y rellenar las cosas que desea comentar entre corchetes. El mecanismo real que impide la ejecución aquí es que las cosas dentro de las comillas no se sustituyen.

Aquí están algunos de mis favoritos. Me gustan porque son auto-documentado:

set COMMENTED_OUT { 

    commented out stuff 

} 

y

proc COMMENTED_OUT {} { 

    commented out stuff... 

} 

tiendo a preferir el proc porque el bloque de texto como comentario es realmente un bloque de código.

Tenga en cuenta que TCL no compila cuerpos proc hasta la primera ejecución para comentar a cabo utilizando un proc es tan barato como set y if {0} ...

+6

por supuesto, esto no funcionará si las cosas que está comentando son defectuosas y tiene llaves desbalanceadas. –

11

Esta pregunta no está clara. ¿Quiere comentar un bloque de código? Bueno, hay dos maneras: prefijo cada línea con # uso algo a lo largo

if { 0 } { 
    a section 
    of 
    "commented" code 
} 

Si no se vuelva a formular esta pregunta de mostrarnos un ejemplo de lo que entendemos.

+2

Para ser claros, Tcl no analiza el cuerpo * en absoluto * en el caso donde se resuelva que nunca se puede ejecutar (excepto para verificar el equilibrio de la llave). –

+3

, se debe mencionar que el truco "si 0" no funcionará si las líneas de código que se bloquearán tienen llaves desbalanceadas. –

Cuestiones relacionadas