Todos los lenguajes de programación admiten una cosa que se llama comentarios
Cualquier linea que escribes en un archivo de ruby (por ejemplo) se ejecutará antes o después salvo si se trata de un comentario
En ruby los comentarios empieza con el caracter especial #
, un ejemplo:
#esto es un comentario
puts "hola santi"
#aqui otro comentario
Los comentarios en ruby van desde donde se encuentra el caracter #
hasta el finalde la linea, de manera que se puede hacer algo como esto:
puts "hola de nuevo" #esta linea escribirá por pantalla "hola de nuevo", pero todo lo que va despues de la almohadilla será ignorado, porque es un comentario
Los comentarios son utiles para dejar anotaciones aclaratorias al lado del código.
También son muy útiles cuando quieres que cierta parte del código deje de funcionar pero no quieres perderlo para siempre. En ese caso comentas la fracción de código que te interesa y a seguir. Muy util cuando estas programando o cuando estas readaptando el código de otros ;)
puts "esta linea se imprirá por pantalla"
# puts "esta linea no se imprimirá porque esta comentada"
Los que hemos visto hasta ahora son los llamados comentarios en línea porque, como has visto, sólo comentan una línea de código.
Pero a veces te puedes encontrar con que quieres comentar un larguísimo pedazo del código. En esos casos sería un poco incomodo estar poniendo #
al principio de cada línea. Para eso se invitaron los comentarios en bloque.
En ruby se delimienta por las palabras especiales =begin
y =end
, de manera que todo lo que esté entre medias se considerará un comentario.
Te pongo un ejemplo con un fragmento de código de La Ronda.
# ...
def self.last_tweet(query)
Tweet.where(query:query).order(:id_str).first
end
def self.find_for_laronda
self.search_and_persist('to:riderstate')
self.search_and_persist('to:dportsinlimites')
self.search_and_persist('#laronda')
end
def self.search_and_persist(query='')
last_tweet = self.last_tweet(query)
results = Twitter.search(query, rpp:100, since_id: last_tweet.try(:id_str)).results
self.create_from_search_results(results, query)
end
#...
Sin entrar a que hace el código, imaginemos que quiero comentar la funcion find_for_laronda
. Podría hacerlo con comentarios en línea
# ...
def self.last_tweet(query)
Tweet.where(query:query).order(:id_str).first
end
#def self.find_for_laronda
# self.search_and_persist('to:riderstate')
# self.search_and_persist('to:dportsinlimites')
# self.search_and_persist('#laronda')
#end
def self.search_and_persist(query='')
last_tweet = self.last_tweet(query)
results = Twitter.search(query, rpp:100, since_id: last_tweet.try(:id_str)).results
self.create_from_search_results(results, query)
end
#...
o con un comentario de bloque:
# ...
def self.last_tweet(query)
Tweet.where(query:query).order(:id_str).first
end
=begin
def self.find_for_laronda
self.search_and_persist('to:riderstate')
self.search_and_persist('to:dportsinlimites')
self.search_and_persist('#laronda')
end
=end
def self.search_and_persist(query='')
last_tweet = self.last_tweet(query)
results = Twitter.search(query, rpp:100, since_id: last_tweet.try(:id_str)).results
self.create_from_search_results(results, query)
end
#...
Como nota al margen te diré que los comentarios en bloque en ruby son muy poco usuales, sobre todo comparado con otros lenguajes de programación, como vamos a ver
Ahora que ya sabes todo lo que hay que saber sobre los comentarios, vamos a ver como se lo monta php.
La sintaxis de los comentarios en php es muy común encontrarla en otros lenguajes de programación, como por ejemplo en C, javascript, java o incluso css
su funcionamiento es el mismo que en ruby pero en lugar de empezar por #
empiezan por //
<?php
print("este texto sale por pantalla");
// print("este texto esta comentado, así que no saldrá");
print(sqrt(16)); // este código calcula la raiz cuadrada de 16 y la imprime por pantalla
?>
funcionan igual que en ruby y sus palabras delimitadoras son /*
y */
<?php
/*
el codigo de aqui abajo va a hacer 2 cosas:
1) calculara la raiz de 16 con la funcion sqrt
2) imprimirá el resultado por pantalla
*/
print(sqrt(16));
/*
esta es una función que escribí pero que no voy a utulizar al final
la guardo de momento para acordarme de como se hacían las potencias en php
function potencia_de_dos(int num){
return num ** 2;
}
*/
?>
No es raro encontrarse código que utiliza los comentarios en bloque como comentarios en linea:
<?php
print("este texto sale por pantalla");
// print("este texto esta comentado, así que no saldrá");
print(sqrt(16)); // este código calcula la raiz cuadrada de 16 y la imprime por pantalla
/***********************************/
/* print("este texto esta comentado, así que no saldrá"); */
print(sqrt(16)); /* este código calcula la raiz cuadrada de 16 y la imprime por pantalla */
?>
(fíjate además como a veces se utilizan los comentarios para separar visualmente fragmentos de código)
WARNING: Una cosa con la que hay que tener cuidado con los comentarios en bloque en php es que no se pueden anidar, es decir, no puedes poner un comentario de bloque dentro de otro comentario de bloque, porque el cierre del comentario anidado causaría un error en el interprete de php que lo asociaría al cierre del comentario padre.
<?php
/*
echo 'This is a test'; /* This comment will cause a problem */
esto de aquí no estará comentado y causará un error, fijate como pierde el color del comentario
*/
?>
HTML sólo admite comentarios en bloque y sus palabras delimitadoras son un así de raras <!--
y -->
No es muy típico encontrar código comentado en HTML pero esta bien que se pueda hacer. En teoría ningún comentario debería nunca alterar el comportamiento del código al que acompaña pero en HTML me he encontrado un par de ocasiones que ese no era el caso ¿adivinas quien tenía la culpa? ¡correcto! Internet Explorer ;)
<!-- Esto es un comentario. Los comentarios no se muestran en el navegador-->
<p>Esto es un parrafo normal y corriente</p>
<!-- <p> este parrafo no se mostrará porque esta comentado </p> -->
Como HTML, CSS sólo tiene comentarios en bloque y funcionan exactamente igual que los comentarios de bloque de php
/* Esto es un comentario*/
p {
text-align:center;
/* esto es otro comentario*/
color:black; /* escogemos color negro para los parrafos*/
/* color: red; una prueba con parrafos en color rojo, no me gusta asi que lo comento*/
font-family:arial;
}
exactamente igual que los de php ;)
Excelente, muchas gracias.