En esta página:
En la parte anterior de este Post, vimos los primeros tipos de operadores con los que cuenta Ruby, personalmente me gustaron los operadores de asignación, porque te permiten dar un valor a una variable rápidamente, en este Post vamos a ver otros tipos de operadores que son muy importantes conocerlos, vamos con ello.
Partes
- Parte 1
- Parte 2 (Final)
Antes de continuar te invito a leer los siguiente artículos:
- Que es Ruby y Otros Detalles
- Los métodos attr_* de Ruby
- Puedes leer más Posts en la categoría Ruby
Asimismo te invito a escuchar el Podcast: “5 Consejos para ser un Programador más Productivo”:
Spotify: | Sound Cloud: |
Bien ahora continuemos con el Post: Tipos de Operadores en Ruby (2.7.1) – Parte 2 (Final).
Operadores de bit a bit
Este tipo de operadores nos permiten realizar operaciones con bits, veamos a continuación cuales son los tipos de operadores que conforman este grupo.
Operador Bitwise AND (&)
Este operador toma dos números como operandos y hace AND en cada bit de dos números, el resultado de AND es 1 solo si ambos bits son 1, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 |
a = 15 b = 10 puts (a & b).to_s(2) # Devuelve 1010 |
Operador Bitwise OR (|)
Este operador toma 2 números como operandos y hace OR en cada bit de 2 números, el resultado de OR es 1, cualquiera de los 2 bits es 1, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 |
a = 15 b = 10 puts (a | b).to_s(2) # Devuelve 1111 |
Operador Bitwise XOR (^)
Este operador toma 2 números como operandos y hace XOR en cada bit de 2 números, el resultado XOR es 1 si los dos bits son diferentes, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 |
a = 15 b = 10 puts (a ^ b).to_s(2) # Devuelve 101 |
Operador Bitwise de desplazamiento a la izquierda (<<)
Este operador toma 2 números, desplaza a la izquierda los bits del primer operando, el segundo operando decide el número de lugares a desplazar, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 |
a = 15 b = 10 puts (a << b).to_s(2) # Devuelve 11110000000000 |
Operador Bitwise de desplazamiento a la derecha (>>)
Este operando toma 2 números, desplaza a la derecha los bits del primer operando, el segundo operando decide el número de lugares a desplazar, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 |
a = 15 b = 10 puts (a >> b).to_s(2) # Devuelve 0 |
Operador Bitwise un complemento (~)
Este operador toma un solo número y lo utiliza para realizar una operación de complemento de 8 bits, veamos un ejemplo.
1 2 3 4 5 6 7 8 |
a = 15 puts (~a).to_s(2) # Devuelve - 10000 |
Operador Ternario
Este operador condicional, es una versión abreviada de la instrucción if – else cuenta con 3 operandos y de allí viene el nombre de ternario. Devuelve uno de 2 valores dependiendo del valor de una expresión booleana.
Si la condición es verdadera (true), la primera expresión es evaluada y se convierte en el resultado.
Si la condición es falsa (false), la segunda expresión es evaluada y se convierte en el resultado.
Veamos unos ejemplos a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Stock de productos stock = 50 # Verificamos si hay stock de productos resultado = stock > 3 ? 'Si hay stock' : 'No hay Stock' # obtenemos el resultado puts resultado # Obtenemos Si hay stock |
Operadores de Rango
Estos operadores nos permiten crear un rango de secuencia de elementos específicos, hay 2 operadores de rango que veremos a continuación.
Operador de doble punto (..)
Es utilizado para crear un rango de secuencia específico en el que tanto el elemento inicial como el final serán inclusivos, por ejemplo 4 .. 10 creará una secuencia como 4, 5, 6, 7, 8, 9, 10. Veamos un ejemplo a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Usamos un separador por comas separador, =", " # Usamos el operador de 2 puntos (..) rango = (4 .. 10).to_a # Imprimimos el resultado puts "#{rango}" # Obtenemos [4, 5, 6, 7, 8, 9, 10] |
Operador defined?
Este operador es especial, se utiliza para verificar si la expresión pasada está definida o no, devuelve nil si el argumento pasado no está definido, caso contrario devuelve un string de ese argumento que lo define, veamos unos ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# varibles NC = 1 NubeColectiva = 100 puts ("define? Resultados del operador") # Devuelve constante puts defined? NC # Devuelve constante puts defined? NubeColectiva # Devuelve expresión puts defined? c # Devuelve expresión puts defined? 99 # Obtenemos define? Resultados del operador constant constant expression |
Operadores de punto y dos puntos
Este grupo operadores se divide en 2 tipos de operadores, veamos a continuación cuales son.
Operador de punto (.)
Este operador se utiliza para acceder a los métodos de una clase, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 |
class Postres def Jugos puts "Operador de punto (.)" end end puts Postres.new.Jugos # Devuelve Operador de punto (.) |
Operador de dos puntos (::)
Este operador es usado para acceder a las constantes, los métodos de clase y los métodos de instancia definidos dentro de una clase o módulo a cualquier lugar fuera de la clase o módulo. Es importante recordar que las clases y los métodos pueden considerarse constantes en Ruby y también prefijar :: Nombre_constante con la expresión que devuelve el objeto de clase apropiado, si no se utiliza ninguna expresión de prefijo. de manera predeterminada se usa la clase de objeto principal, veamos un ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
CONS = 3 module Tortas CONS = 3 ::CONS = 6 CONS = 9 end puts CONS puts Tortas::CONS # Obtenemos Main.rb:10: warning: already initialized constant CONS Main.rb:2: warning: previous definition of CONS was here Main.rb:13: warning: already initialized constant Tortas::CONS Main.rb:7: warning: previous definition of CONS was here |
Conclusión
Hemos aprendido los tipos de variables que hay en el Lenguaje de Programación Ruby, para que los domines necesitas ponerlos en práctica.
Nota (s)
- El código expuesto en este Post que consta de 2 partes, puede quedar obsoleto, continuar o cambiar, esto no depende de mi, si no de los desarrolladores que dan soporte al Lenguaje de Programación Ruby.
- No olvides que debemos utilizar la tecnología para hacer cosas buenas por el mundo.
Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.
[ Redactando … ]