Tutorial Ruby 02: Sintaxis Basica

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.

Tipos de datos en Ruby

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.

  • Cadena de caracteres (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

  • Hash: Los hash son como los arreglos pero con una gran diferencia, ya que en vez de existir un indice en el que se recorra el elemento, estos contendran llaves que sirvan para poder localizar el elemento que queramos usar. La forma en que las declaramos es casi igual que con los arreglos solo que en vez de corchetes [ ] 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

  • Simbolos: Son usados muy seguido como identificadores en lugar de las cadenas porque pueden consumir menos memoria. Para crear un simbolo, simplemente precede una palabra con dos puntos: :simbolo

Tipos de declaración de Variables en Ruby

Una 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.

  • Variables locales: Tienen un ámbito local (dentro de una función o contexto) por convención se escriben en minúscula y si tiene un nombre compuesto este se separa por un guion bajo.
nombre, id_cliente, primer_apellido, segundo_apellido
  • Variables Globales: Tienen un ámbito global pueden ser usados en cualquier parte de nuestro código, como una función, una clase o moduelo. Empiezan con el símbolo $ conservan la misma convención de las variables locales.
$nombre, $id_cliente, $primer_apellido, $segundo_apellido
  • Variables de Instancia: Aunque lo veremos mas adelante cuando se vean las Clases son las variables que se ejecutan dentro de una clase y son las variables que hacen referencia a las propiedades de una clase. Si estas variables las usas fuera de la clase te devolveran un valor nulo, por lo que solo pueden ser usadas dentro de los metodos de nuestra clase. Se representan colocando un @ antes del nombre de la clase.
@nombre, @edad
  • Variables de clase: Variables que pertenecen a la clase que tiene la facultad de que la variable al ser cambiado su valor, todos los objetos de esa clase también cambiara el valor de esa variable, por eso es obligado que cuando se crea una variable de este tipo debe comenzar inicializada con un valor y se representan con @@ antes del nombre de la clase.
@@ruedas = 4
  • Constantes: Variable que nunca cambiara de valor en todo el programa, por convención siempre se escriben en mayúscula.
PI = 3.1416, CAPACIDAD

Estructuras de desición y Bucles

Condicionales

  • if/else y unless: Ruby tiene algo mas que el if/else como condicional primaria, sino que también tenemos a unless, mientras que if analiza una condición verdadera y de ahí sigue el flujo de instrucciones, unless hace justamente lo opuesto, analiza una condicional y si es falsa se ejecutan las instrucciones dentro del ámbito.
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
  • switch/case: Aunque en otros lenguajes de programación lo conocemos como un “switch” aqui se usa la palabra reservada “case” y su uso es prácticamente igual.
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.

Bucles

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:
while a<10
    puts a
    a+=1
end
  • Do-While: Realmente no se conoce como do-while en ruby pero como es lo mas parecido a otros lenguajes lo subtitule de esa forma
begin
  puts a
  a+=1
end while a<10
  • until: Until es lo mismo que cuando vimos unless mientras la condición sea falsa se va a cumplir la condición
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: Cuando conocí 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 break
loop do
  puts a
  a+=1
  break if a>100
end
  • For: Por ultimo nos falta la instrucción For que se nos simplifica mucho mas, aunque al principio puede confundir. Mientras que en otros lenguajes usamos la sintaxis 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 bucle
  • next: Se adelanta a la siguiente interacción del bucle
  • redo: Se repite el bucle ignorando y anulando la evaluación de la condición
  • retry: Se repite el bucle repitiendo de igual forma la evaluación de la condición

¡Los anuncios me ayudan!

Hola. Este blog se mantiene gracias a algunos banners de publicidad. Si tienes bloqueador de anuncios te pido que nos pongas en tu whitelist.

La publicidad de este sitio no es invasiva. O si prefieres podrias dar una pequeña donación en las diferentes criptomonedas de este sitio.

Por tu atención gracias