Hoy veremos un ejercicio básico con Ruby, y es el de trabajar con la terminal. Es decir, imprimir datos sobre la consola y también leer alguna entrada del usuario.
Para imprimir en la consola se utiliza puts
, y para leer algo del usuario se utiliza gets
. Pero eso no es todo, pues a veces necesitamos convertir los tipos de datos o remover los espacios sobrantes.
Por eso es que hoy veremos una introducción al trabajo con la terminal o consola usando Ruby.
Imprimir datos en la terminal
Para imprimir se usa puts
. Así:
puts "Hola"
También se puede imprimir una variable de cualquier tipo. Y embeber, así:
puts "Me llamo #{nombre}"
Igual se puede llamar con múltiples argumentos:
puts "hola" "mundo"
Al final dejaré un ejemplo.
Leer datos por teclado en la terminal
Para pedirle un dato al usuario se usa gets
. Así:
nombre = gets
A diferencia de Python, gets no imprime ningún mensaje. Por eso es que si queremos pedirle algo al usuario debemos imprimir antes con puts
.
Por cierto, cualquier valor que regresa gets
es una cadena. Para convertirla a entero usamos to_i
y para convertirla a flotante usamos to_f
.
Al final dejaré ejemplos de lectura de datos.
Nota importante: gets
devuelve la cadena con un salto de línea, para removerlo se puede llamar a chomp
así: variable = gets.chomp
Poniendo todo junto
Aquí está el código que ejemplifica todo lo de arriba:
=begin
Demostrar la impresión y lectura de datos
en la terminal o consola con Ruby
@author parzibyte
=end
# Para imprimir, usamos puts
puts "Hola, mundo"
# Mensajes en una nueva línea cada uno
puts "Hola", "Mundo", "Soy Ruby"
# O como si se concatenaran
puts "Hola" "Mundo" "Soy Ruby"
# Paréntesis opcionales
puts("parzibyte.me")
# Para leer, usamos gets
puts "Dime tu nombre"
nombre = gets
puts "Hola, #{nombre}"
# gets devuelve la cadena pero con un salto de línea, para quitarlo se usa chomp
puts "Escribe otra cosa"
sin_salto_de_linea = gets.chomp
puts "Lo que escribiste es: '#{sin_salto_de_linea}'"
# Como esto regresa una cadena, se puede convertir a entero
puts "Dime tu edad"
edad = gets.to_i
puts "Dentro de 10 años, tu edad será de #{edad + 10}"
# O como flotante con to_f
puts "Ingresa la cantidad que transfieres:"
cantidad = gets.to_f
puts "El doble de la cantidad es #{cantidad * 2}"
Si quieres aprender más sobre Ruby puedes ver más posts aquí.