NOTA: Estoy volviendo a crear mis tutoriales de Ruby y en este caso para este post es una remasterización de un post que escribí hace más de dos años, por lo que ando arreglando algunas cosas que tenía mal explicado, así que busco que sea mejor entendible para el que quiera aprender Ruby y no se pierda en el proceso.
NOTA 2: El primer post de este tutorial lo puedes encontrar en mi canal de Youtube de Programación o en mi web personal, de ahí en adelante crearé una colección en Peakd para que sea fácil su acceso.
Después de ver como instalar el Lenguaje de Programación Ruby en nuestra computadora, es momento de que aprendamos la sintaxis básica que tiene. Una sintaxis buena para los principiantes, pues lo que busca este lenguaje de programación es que sea gentil para el programador.
Una de las ventajas y al mismo tiempo un poco confuso para los programadores que vienen de lenguajes de programación como C++ o Java es el uso de { } en nuestro ámbito de programación, ni tampoco terminamos nuestras instrucciones con un ; en cambio su estructura empieza con la condición a usar y termina con un end. Ya lo veremos a continuación cuando ponga algunos ejemplos de su sintaxis, asi que agarren su IDE y pongamos manos a la obra. También recordar que una vez que creamos nuestro programa para ejecutarlo, en nuestra terminal ponemos ruby <nombre_del_archivo>.rb.
Los tipos de datos en Ruby tenemos las más conocidas de otros lenguajes de programación como son los enteros, cadena de caracteres, booleanos, junto con otras nuevas propias de este lenguaje de programación que a continuación mencionaré alguna de ellas. Una característica interesante es que no tenemos que declarar de que tipo es nuestra variable al momento de crearla, pues solo es cuestión de asignarle su valor y Ruby identificara de que tipo son.
strings): Las cadenas de caracteres además de ser igual que otros lenguajes de programación que puedes declararlas usando comillas simples o dobles, tiene también la característica de que puedes incrustar un valor igual dentro de otra cadena usando #{<variable>}variable1 ="Shadow Myst"
variable2 = "Hola soy #{variable1}"
Numeros: Como mencione anteriormente, Ruby detecta de forma automática que tipo de variable estás usando, si es un entero o si es un número decimal (float), además que si estás usando números muy grandes, puedes poner guiones bajos, los cuales ignorara millones=10_000_000, así que es una forma de poder leer números grandes al momento de declarar variables
Booleanos: Aquí no hay gran diferencia a otros lenguajes de programación, sus únicos valores serán True o False
Arreglos: Los arreglos es algo que usamos mucho en los diferentes lenguajes de programación que llegamos a manejar y obviamente Ruby no seria la excepción. En ruby tenemos diferentes formas de declarar arreglos y tambien de manipularlos.
#Crear un objeto array
arreglo = Array.new
#Crear un objeto array pero con el numero de elementos que tendra
arreglo2 =Array.new(2)
#Simplemente iniciarlo con corchetes
arreglo3 = []
#Iniciarlo con los elementos que tendra
arreglo4 = ["Jesus","Leonel","Emmanuel"]
Ademas para añadir un elemento a nuestro arreglo podemos simplemente usar la anotación de corchetes en el indice correcto arreglo4[3] = Atzimba o usar la función push: arreglo4.push("Atzimba")
Un gran cambio que podemos notar con los arreglos en Ruby es la forma en recorrer los elementos del mismo, mientras que en otros lenguajes tendriamos que hacerlo con un For.
arreglo4.each do |indice|
puts indice
end
Nos creamos una variable "indice" donde se almacena temporalmente cada elemento de nuestro arreglo para los usos que queramos darle
[ ] usamos las llaves { }hash= Hash.new
hash2 = {}
#Lo llenamos de la siguiente forma
hash2 = {"Nombre" => "Jesus","apellido" => "Figueroa"}
Para agregar un nuevo elemento utilizaremos la notación de corchetes. Puedes usar cualquier valor para nombrar la clave: hash2["edad"] = 30
:simboloUna de las características que tiene Ruby, es que las variables no son necesarias declararlas con un tipo de especifico, como suele ser en algunos otros lenguajes como lo que es C++, Java, etc. Las variables cambian de tipo en tiempo de ejecución por lo que por un momento puede ser una variable de tipo entero y en otro se vuelve una variable de tipo cadena, dependiendo de como las estemos usando al momento de necesitarlas.
nombre, id_cliente, primer_apellido, segundo_apellido
$ conservan la misma convención de las variables locales.$nombre, $id_cliente, $primer_apellido, $segundo_apellido
@ antes del nombre de la clase.@nombre, @edad
@@ antes del nombre de la clase.@@ruedas = 4
PI = 3.1416, CAPACIDAD
a = 5
b = 7
if a<b
puts "a es menor de b"
else
puts "b es menor de a"
end
En este caso como a es menor que b por lo que la condicion es verdadera nos imprimirá el mensaje dentro del if.
a = 5
b = 7
unless a<b
puts "b es menor de a"
else
puts "a es menor de b"
end
Pero en este caso como unless necesita que la condición sea falsa, nos va a imprimir lo que esta dentro de else.
También podemos poner nuestro condicional en una sola instrucción si es que nuestro programa es algo simple.
puts "a es menor a b" if a<b
puts "b es menor a a" unless a<b
case calificacion
when (0..69) #Esta es una variable del tipo Range
puts "Reprobado"
when (70..100)
puts "Aprobado"
else
puts "No existe esa calificación o fue mal escrita"
end
NOTA 1: Los comentarios de una sola linea podemos anteponerlos con #
NOTA 2: Dentro de nuestro case podemos usar variables de tipo string, numéricos o en el caso de este ejemplo usamos de clase Range
NOTA 3: Mientras que en otros lenguajes se usa default como opción final en cuanto no tengamos como evaluar, en ruby usaremos Else como si fuera un if.
Ruby también nos da una variedad de diferentes palabras reservadas para usar bucles aparte de las tradicionales while, do-while y for, veamos todas una por una en un ejemplo rápido
while a<10
puts a
a+=1
end
begin
puts a
a+=1
end while a<10
until a<10
a+=1
puts "a no es menor a 10"
end
---------------
begin
puts "a no es menor a 10"
a+=1
end until a<10
De igual forma podemos poner nuestro while y until en una sola instrucción.
a+=1 while a<20 #Para While
a+=1 until a>20 #Para Until
Loop se me hizo extraño pues realmente consiste de ciclar una instrucción indefinidamente y la única forma de salirse es con la palabra reservada breakloop do
puts a
a+=1
break if a>100
end
for(i=0;i<10;i++) con Ruby lo reducimos a el nombre de la variable y un rango de valores que se especifica de la siguiente manera: (0..10).for i in (0..10)
puts i
end
Por ultimo y como recordatorio, podemos usar cuatro comandos que nos ayudaran en nuestros bucles:
break: Termina el buclenext: Se adelanta a la siguiente interacción del bucleredo: Se repite el bucle ignorando y anulando la evaluación de la condiciónretry: Se repite el bucle repitiendo de igual forma la evaluación de la condición