Los strings (o cadenas de texto) son secuencias de caracteres entre comillas simples o comillas dobles. ''
(dos comillas simples) no tienen nada: podemos llamarlo string vacío.
puts "Hola mundo"
# Se puede usar " o ' para los strings, pero ' es más eficiente.
puts 'Hola mundo'
# Juntando cadenas
puts 'Me gusta' + ' Ruby'
# Secuencia de escape
puts 'Ruby\'s party'
# Repetición de strings
puts 'Hola' * 3
# Definiendo una constante
# Más adelante se hablará de constantes
PI = 3.1416
puts PI
En Ruby las cadenas son mutables: se pueden modificar. Ruby almacena las cadenas como secuencias de bytes.
Hay unos strings especiales que se diferencian por usar como delimitador el acento grave `:
puts `dir`
El string entre los acentos, es enviado al sistema operativo como un comando a ser ejecutado. El resultado devuelto por el sistema, es recogido por Ruby.
Con la interpolación nos referimos al proceso de insertar el resultado de una expresión dentro de un string. La forma de hacerlo es mediante #{ expresión }
. Ejemplo:
puts "100 * 5 = #{100 * 5}"
La sección #{100*5}
se ejecuta y pone el resultado en esa posición. Es decir, 500.
La diferencia entre ambas formas, es el tiempo que se toma Ruby en cada una: mientras que con las simples comillas, Ruby hace muy poco; en las dobles comillas, Ruby tiene que hacer más trabajo:
def di_adios(nombre)
resultado = "Buenas noches, #{nombre}"
return resultado
end
puts di_adios('Pepe')
=begin
Como los métodos devuelven el valor
de la última línea, no hace falta
el return.
=end
def di_adios2(nombre)
resultado = 'Buenas noches, ' + nombre
end
puts di_adios2('Pepe')
=begin
Ahora, en vez de usar ", usamos ',
utilizando la concatenación de strings
para obtener el mismo resultado.
=end
String#length devuelve el número de bytes de una cadena.
string = "Esto es una cadena"
string.length # => 18
string.length
devuelve 18. Cuenta todas las letras, incluidos los espacios en blanco.