Ruby es un lenguaje de programación interpretado, dinámico, reflexivo y orientado a objetos. Desarrollado por Yukihiro Matsumoto, Ruby se centra en la simplicidad y la productividad. Su elegante sintaxis permite a los desarrolladores leer y escribir código más fácilmente.
En esta guía, trabajaremos con cadenas en Ruby.
Requisitos previos
Para realizar los pasos demostrados en este tutorial, necesita los siguientes componentes:
- Un sistema Ubuntu correctamente configurado. Obtenga más información sobre cómo configurar su propio servidor Ubuntu en CloudSigma.
- Cualquier editor de texto moderno, preferiblemente con resaltado de sintaxis, por ejemplo, VS Code, Sublime Text, Atom, Brackets, Vim, etc.
El tipo de datos String
En programación, una cadena es un tipo de datos común que admite todos los lenguajes de programación modernos. Se caracteriza por una secuencia de caracteres. Toda la secuencia de caracteres se trata como una sola pieza de datos. Una cadena puede contener letras, dígitos y caracteres/símbolos especiales.
Ruby, al ser un lenguaje de programación puramente orientado a objetos, trata las cadenas como objetos. A diferencia de muchos otros lenguajes, las cadenas en Ruby son mutables. Básicamente, el valor de la cadena se puede cambiar in situ.
Paso 1 – Creación e impresión de cadenas
En Ruby, las cadenas están envueltas por comillas simples ( ') o comillas dobles ( "). Las siguientes son dos cadenas válidas en Ruby:
|
1 2 |
'the quick brown fox' "jumps over the lazy dog" |
Para imprimir cualquier salida en la pantalla de la consola, Ruby viene con el print método:
|
1 2 |
print 'the quick brown fox' print "jumps over the lazy dog" |
Es hora de ponerlo en acción. Cree un nuevo archivo de Ruby practice.rb e introduzca los siguientes códigos:
Run the code:
|
1 |
ruby practice.rb |
Como era de esperar, el comando print imprime las cadenas proporcionadas. Si queremos imprimir las cadenas en líneas separadas, es mejor usar puts en su lugar. Actualice el código:
|
1 2 |
puts 'the quick brown fox' puts "jumps over the lazy dog" |
A continuación, vuelva a ejecutar el código:
|
1 |
ruby practice.rb |
Paso 2 – Variables de cadena
Las variables son nombres que hacen referencia a un lugar específico en la memoria de la computadora donde se almacena un valor. Podemos almacenar el valor deseado en la variable y usarlo más tarde.
En Ruby, para declarar una variable de cadena, defina el nombre de la variable y asigne un valor de cadena:
|
1 |
<variable_name> = <string> |
Escriba el siguiente código en practice.rb:
|
1 2 3 4 |
first_half = 'the quick brown fox' second_half = "jumps over the lazy dog" puts first_half puts second_half |
Run the code:
|
1 |
ruby practice.rb |
Aquí:
- Hemos definido dos variables first_half y second_half, cada una con un valor de cadena asignado.
- El método puts imprime el valor de las variables.
Paso 3 – Concatenación de cadenas
Al concatenar, podemos tomar varias cadenas y unirlas para crear una nueva cadena. La concatenación de cadenas se denota mediante el operador de concatenación ( +). Tenga en cuenta que este símbolo también es el operador de suma cuando se trabaja con operaciones aritméticas.
Intentemos realizar la concatenación de cadenas en las cadenas que hemos declarado hasta ahora:
|
1 |
puts "the quick brown fox" + "jumps over the lazy dog" |
Run the code:
|
1 |
ruby practice.rb |
Como muestra la salida, la concatenación no introduce ningún carácter adicional entre las cadenas. Es por eso que fox y jumps están agrupados. Podemos solucionarlo introduciendo un espacio en blanco después de fox:
|
1 |
puts "the quick brown fox " + "jumps over the lazy dog" |
Run the code:
|
1 |
ruby practice.rb |
Ahora la salida se ve mejor.
La concatenación de cadenas también funciona con variables. Eche un vistazo al siguiente ejemplo:
|
1 2 |
first_half = "el veloz zorro marrón " puts first_half + "salta sobre el perro perezoso" |
Ejecuta el código:
|
1 |
ruby practice.rb |
El siguiente ejemplo demuestra una larga cadena de concatenación:
|
1 2 3 |
username = "cloudsigma" fav_color = "azul" puts "hola, " + username + "! tu color favorito es " + fav_color + "." |
Ejecuta el código:
|
1 |
ruby practice.rb |
Hasta ahora, solo hemos tratado con variables de cadena. ¿Qué pasaría si hubiera diferentes tipos de variables? El siguiente programa prueba este escenario:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id |
Al intentar ejecutar este programa, Ruby arrojará un mensaje de error:
|
1 |
ruby practice.rb |
Sin embargo, podemos convertir el entero a una cadena para evitar este problema:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts username + user_id.to_s |
Aquí:
-
El método to_s convierte el valor de la variable en una cadena.
Convertir números a cadenas es algo común cuando se trata con elementos como códigos postales, monedas, números de teléfono y otros datos numéricos.
Paso 4 – Interpolación de cadenas
Aunque la concatenación de cadenas es una característica potente, puede volverse complicada muy fácilmente. En muchas situaciones, probablemente te encuentres con que te falta un operador de concatenación ( +), lo que provoca un gran dolor de cabeza. Además, al tratar con diferentes tipos de datos, primero deben convertirse a una cadena. Afortunadamente, Ruby ofrece otras formas de inyectar valores de variables en una cadena utilizando la función interpolación de cadenas.
Así es como se ve. Por ejemplo, en lugar de usar:
|
1 |
"hola, " + username + "!" |
Estaremos usando:
|
1 |
"hola, #{username}!" |
Aunque la sintaxis puede parecer un poco extraña, simplifica drásticamente el código. No es necesario llamar manualmente al to_s método para convertir el valor de la variable a cadena.
Usemos esta nueva técnica para actualizar nuestro código anterior:
|
1 2 3 |
username = "cloudsigma" user_id = 20 puts "hola, #{username}! tu ID de usuario es #{user_id}" |
Ejecuta el código:
|
1 |
ruby practice.rb |
Paso 5 – Literales de cadena y valores de cadena
Ten en cuenta que las cadenas declaradas en los códigos siempre están rodeadas por comillas. Sin embargo, al imprimir la salida en la pantalla de la consola, no hay símbolos de comillas. Claramente hay una distinción entre ellos.
- Literal de cadena: Es la cadena escrita en el código fuente (incluyendo las comillas).
- Valor de cadena: Es el valor que se imprime en la salida (sin las comillas).
Por ejemplo, el siguiente es un literal de cadena:
|
1 |
"hello world" |
El valor de cadena del mismo sería hello world.
Paso 6 – Escapar comillas y apóstrofes
Como demostramos, las comillas y los apóstrofes se utilizan para denotar cadenas en el código fuente. Esto plantea un problema: no puedes tenerlos directamente en la cadena. De lo contrario, causará problemas. El siguiente código demuestra esto:
|
1 |
puts 'it's what it is' |
Existen diferentes tácticas para evitar este problema.
-
Uso de sintaxis de cadena alternativa
Esta es la forma más sencilla de evitar el problema. Si tu cadena necesita comillas simples, usa comillas dobles en el literal de cadena (y viceversa).
Corrijamos el ejemplo anterior:
|
1 |
puts "it's what it is" |
Otro ejemplo sería:
|
1 |
puts 'he said, "hello world"' |
Sin embargo, no va a funcionar en todas las situaciones. Por ejemplo:
|
1 |
puts "Clousdigma says, "I'm a happy boi!"" |
-
Uso de caracteres de escape
La barra invertida ( \) se conoce a menudo como el carácter de escape. Evita que Ruby interprete el siguiente carácter literalmente. Corrijamos el ejemplo anterior. Usa la barra invertida para evitar que Ruby interprete las comillas dobles internas como literales:
|
1 |
puts "Cloudsigma dice, \"¡Soy un chico feliz!\"" |
-
Uso de sintaxis alternativa
Hasta ahora, solo hemos estado trabajando con comillas simples y dobles para denotar el literal de cadena. Sin embargo, los ejemplos anteriores son demostraciones simples de cómo esto puede salirse de control muy rápidamente. Para resolver este problema, podemos deshacernos por completo de las comillas y usar un símbolo completamente diferente para denotar el inicio y el final de una cadena.
Eche un vistazo al siguiente ejemplo:
|
1 |
%$el rápido marrón zorro dijo, "salté sobre el perro perezoso"$ |
Aquí:
-
- El símbolo % define el siguiente carácter ( $, en este caso) como el delimitador de la cadena.
- El literal de cadena aquí es $el rápido marrón zorro dijo, "salté sobre el perro perezoso"$.
Pongámoslo en acción:
|
1 |
puts %$el rápido marrón zorro dijo, "salté sobre el perro perezoso"$ |
Aquí, la cadena se trata básicamente como lo siguiente:
|
1 |
"el rápido zorro marrón dijo, \"salté sobre el perro perezoso\"" |
Sin embargo, vuelve a introducir el problema de escapar el delimitador si se utiliza en la cadena. Una forma de evitarlo es usar símbolos que generalmente no aparecen en las cadenas. Dichos símbolos podrían incluir llaves, corchetes, etc.:
|
1 |
puts %{"¡hola, mundo!", él dijo} |
También funciona perfectamente con interpolaciones de cadenas:
|
1 2 3 |
username = "cloudsigma" user_id = 5 puts %{hola, #{username}.#{user_id}!} |
También es común usar %Q{} y %q{} para definir cadenas en programas de Ruby. Aquí, %Q{} actúa como comillas dobles y %q{} actúa como comillas simples.
Paso 7 – Saltos de línea y cadenas largas
Al trabajar con cadenas, habrá situaciones en las que querrá introducir un salto de línea o un retorno de carro en la cadena. Podemos hacerlo introduciendo los caracteres de escape \n (salto de línea) y \r (retorno de carro).
Eche un vistazo al siguiente ejemplo:
|
1 2 |
hello_world = "el rápido\nzorro marrón\nsalta sobre\nel perro perezoso" puts hello_world |
El literal de cadena parece confuso, ¿verdad? Reorganicémoslo para una mejor legibilidad:
|
1 2 3 4 5 6 7 |
hello_world = "el rápido\n" + "zorro marrón\n" + "salta sobre\n" + "el perro perezoso" puts hello_world |
En lugar de declarar manualmente los caracteres de salto de línea, también podemos usar la siguiente estructura:
|
1 2 3 4 5 6 |
hello_world = "el rápido zorro marrón salta sobre el perro perezoso" puts hello_world |
En este método, la cadena conserva todos los espacios en blanco. Sin embargo, esto estropea la salida. Elimine los espacios en blanco adicionales para solucionarlo:
|
1 2 3 4 5 |
hello_world = "el rápido zorro marrón salta sobre el perro perezoso" |
Aunque se solucionó el problema del espacio en blanco, esto reduce la legibilidad del código. Podemos solucionar este problema implementando un heredoc, un término para literales de cadena de varias líneas. El código actualizado se vería así:
|
1 2 3 4 5 6 7 8 |
hello_world = <<-END el rápido marrón zorro salta sobre el perezoso perro END puts hello_world |
A partir de Ruby v2.3 y versiones superiores, hay otra característica disponible, llamada la sintaxis squiggly heredoc. Esta elimina el espacio en blanco inicial en las cadenas. Para expresar un squiggly heredoc, reemplace el guion ( -) con una virgulilla ( ~):
|
1 2 3 4 5 6 7 8 |
hello_world = <<~END el rápido marrón zorro salta sobre el perezoso perro END puts hello_world |
Paso 8 – Replicar cadenas
En algunas situaciones, puede ser necesario repetir una cadena varias veces. Ruby permite replicar cadenas de varias formas.
Una de estas técnicas es usar el * operador. Generalmente, se utiliza como el operador de multiplicación cuando se trata de números. Sin embargo, cuando se trata de cadenas, se convierte en el operador de replicación de cadenas, repitiendo la cadena individual tantas veces como sea necesario. El número de repeticiones debe ser un entero.
En el siguiente ejemplo, el texto Boris se va a repetir 5 veces:
|
1 |
print "Boris" * 5 + "\n" |
Usando esta característica, podemos producir un arte ASCII genial. Echa un vistazo al siguiente ejemplo:
|
1 2 3 |
puts "=" * 15 puts "| hola mundo |" puts "=" * 15 |
Reflexiones finales
Las cadenas, en programación, son esenciales. Esta guía demuestra cómo trabajar con cadenas en Ruby. Aprendimos a crear cadenas y a realizar diversas operaciones como la concatenación, el manejo de nuevas líneas, comillas, etc. Usando la interpolación de cadenas, también aprendimos a integrar mejor los valores de las variables en las cadenas. Usando el operador de replicación de cadenas, también podemos repetir una sola cadena varias veces.
Aunque Ruby, por sí mismo, es un excelente lenguaje de programación, a menudo se combina con el framework Rails. Ruby on Rails es un framework de aplicaciones web de código abierto. Obtenga más información sobre cómo instalar Ruby on Rails en Ubuntu. Sin embargo, Ruby también puede funcionar con otras aplicaciones, como MySQL y PostgreSQL.
¡Feliz programación!












































Comentarios
Aún no hay comentarios. Sea el primero.