sábado, 3 de noviembre de 2012

Un apóstofre (') no es una comilla (")

Me he visto en la necesidad de tener que revisar mucho en shell de Unix y he visto como muchos progamadores usan el apóstofre (') o la comilla (") indistintamente, pero no es lo mismo.

¿Cuándo usar apostrofes ('') y cuando usar comillas ("")?

Los apóstrofes nos permiten expresar cadenas de texto, por ejemplo:

echo 'hola '; 

Algo más complejo:

nombre = ' Juan';
echo 'Hola ' . $nombre;


Aparecería el saludo : Hola Juan;

A ninguno se nos escapa que si ponemos:

echo 'Hola $nombre";

 nos aparecerá es lo siguiente: Hola $nombre

Ahora es donde introducimos  el comilla (") porque la comilla no es un simple carácter para delimitar un texto es mucho más porque lleva implícita una llamada a un parser, que no es poco. 

El proceso es siguiente: se analiza carácter a carácter el texto que es tratado como literal hasta que en encuentra un nombre de variable y lo sustituye por su valor y continua el proceso hasta el final.

Entonces:

echo "Hola $nombre";
  
Nos dará este resultado: Hola Juan;

Variaciones (sobre un mismo string).

Con lo anteriormente visto tenemos varias posibilidades con resultados iguales.


  1. echo "Hola $Juan"
  2. echo "Hola" $Juan
  3. echo 'Hola' $Juan
  4. echo 'Hola $Juan'

Las tres primeras opciones dan el mismo resultado pero solamente la primera y la tercera se pueden considerar sintácticamente correctas.
La tercera hace algo sin sentido: pone al parser a analizar un cadena con un solo string. Trabajo en balde.
La cuarta daría un resultado no deseado.

De las dos correctas. ¿Hay alguna mejor que la otra?.

Dado que ambas dan el mismo resultado, lo siguiente que debemos preguntarnos es: ¿Cual tiene mejor rendimiento?.

La respuesta es fácil: Aquella que no use el parser.

Los parser son unos grandes devoradores de recursos de un sistema por lo que debemos intentar evitar su uso siempre que nos sea posible.



 
 

No hay comentarios:

Publicar un comentario