Ir Operadores

Los operadores son la base de cualquier lenguaje de programación. Por lo tanto, la funcionalidad del lenguaje Go está incompleta sin el uso de operadores. Los operadores nos permiten realizar diferentes tipos de operaciones en los operandos. En el lenguaje Go , los operadores se pueden categorizar según su diferente funcionalidad:

Operadores aritméticos

Estos se utilizan para realizar operaciones aritméticas/matemáticas en operandos en el lenguaje Go: 

  • Adición: el operador ‘+’ suma dos operandos. Por ejemplo, x+y.
  • Resta: el operador ‘-‘ resta dos operandos. Por ejemplo, xy.
  • Multiplicación: El operador ‘*’ multiplica dos operandos. Por ejemplo, x*y.
  • División: El operador ‘/’ divide el primer operando por el segundo. Por ejemplo, x/y.
  • Módulo: El operador ‘%’ devuelve el resto cuando el primer operando se divide por el segundo. Por ejemplo, x%y.

Nota: -, +, !, &, *, <- y ^ también se conocen como operadores unarios y la precedencia de los operadores unarios es mayor. Los operadores ++ y — provienen de declaraciones, no son expresiones, por lo que están fuera de la jerarquía de operadores.

Ejemplo: 

Go

// Go program to illustrate the
// use of arithmetic operators
package main
   
import "fmt"
   
func main() {
   p:= 34
   q:= 20
      
   // Addition
   result1:= p + q
   fmt.Printf("Result of p + q = %d", result1)
      
   // Subtraction
   result2:= p - q
   fmt.Printf("\nResult of p - q = %d", result2)
      
   // Multiplication
   result3:= p * q
   fmt.Printf("\nResult of p * q = %d", result3)
      
   // Division
   result4:= p / q
   fmt.Printf("\nResult of p / q = %d", result4)
      
   // Modulus
   result5:= p % q
   fmt.Printf("\nResult of p %% q = %d", result5)
}

Producción: 

Result of p + q = 54
Result of p - q = 14
Result of p * q = 680
Result of p / q = 1
Result of p % q = 14

Operadores relacionales

Los operadores relacionales se utilizan para la comparación de dos valores. Vamos a verlos uno por uno:

  • El operador ‘=='(Igual a) comprueba si los dos operandos dados son iguales o no. Si es así, devuelve verdadero. De lo contrario, devuelve falso. Por ejemplo, 5==5 devolverá verdadero.
  • El operador ‘!='(No es igual a) comprueba si los dos operandos dados son iguales o no. Si no, devuelve verdadero. De lo contrario, devuelve falso. Es el complemento booleano exacto del operador ‘==’. Por ejemplo, 5!=5 devolverá falso.
  • El operador ‘>'(Mayor que) comprueba si el primer operando es mayor que el segundo operando. Si es así, devuelve verdadero. De lo contrario, devuelve falso. Por ejemplo, 6>5 devolverá verdadero.
  • El operador ‘<‘(menor que) comprueba si el primer operando es menor que el segundo operando. Si es así, devuelve verdadero. De lo contrario, devuelve falso. Por ejemplo, 6<5 devolverá falso.
  • El operador ‘>='(Mayor que igual a) comprueba si el primer operando es mayor o igual que el segundo operando. Si es así, devuelve verdadero. De lo contrario, devuelve falso. Por ejemplo, 5>=5 devolverá verdadero.
  • El operador ‘<='(menor que igual a) comprueba si el primer operando es menor o igual que el segundo operando. Si es así, devuelve verdadero. De lo contrario, devuelve falso. Por ejemplo, 5<=5 también devolverá verdadero.

Ejemplo: 

Go

// Go program to illustrate the
// use of relational operators
package main
   
import "fmt"
   
func main() {
   p:= 34
   q:= 20
      
   // ‘=='(Equal To)
   result1:= p == q
   fmt.Println(result1)
      
   // ‘!='(Not Equal To)
   result2:= p != q
   fmt.Println(result2)
      
   // ‘<‘(Less Than)
   result3:= p < q
   fmt.Println(result3)
      
   // ‘>'(Greater Than)
   result4:= p > q
   fmt.Println(result4)
      
   // ‘>='(Greater Than Equal To)
   result5:= p >= q
   fmt.Println(result5)
      
   // ‘<='(Less Than Equal To)
   result6:= p <= q
   fmt.Println(result6)
      
      
}

Producción: 

false
true
false
true
true
false

Operadores logicos

Se utilizan para combinar dos o más condiciones/restricciones o para complementar la evaluación de la condición original en consideración.  

  • Y lógico: el operador ‘&&’ devuelve verdadero cuando se cumplen las dos condiciones consideradas. De lo contrario devuelve falso. Por ejemplo, a && b devuelve verdadero cuando tanto a como b son verdaderos (es decir, distintos de cero).
  • OR lógico: el ‘||’ El operador devuelve verdadero cuando se cumple una (o ambas) de las condiciones en consideración. De lo contrario devuelve falso. Por ejemplo, un || b devuelve verdadero si uno de a o b es verdadero (es decir, distinto de cero). Por supuesto, devuelve verdadero cuando tanto a como b son verdaderos.
  • NO Lógico: El ‘!’ operador devuelve verdadero la condición en consideración no se cumple. De lo contrario devuelve falso. Por ejemplo, !a devuelve verdadero si a es falso, es decir, cuando a=0.

Ejemplo: 

Go

// Go program to illustrate the
// use of logical operators
package main
import "fmt"
func main() {
    var p int = 23
    var q int = 60
        
    if(p!=q && p<=q){ 
        fmt.Println("True")
    }
        
    if(p!=q || p<=q){ 
        fmt.Println("True")
    }
        
    if(!(p==q)){ 
        fmt.Println("True")
    }
        
}

Producción: 

True
True
True

Operadores bit a bit

En el lenguaje Go, hay 6 operadores bit a bit que funcionan a nivel de bit o se utilizan para realizar operaciones bit a bit. Los siguientes son los operadores bit a bit: 

  • & (Y bit a bit): 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.
  • | (OR bit a bit): Toma dos números como operandos y hace OR en cada bit de dos números. El resultado de OR es 1 cualquiera de los dos bits es 1.
  • ^ (XOR bit a bit): toma dos números como operandos y hace XOR en cada bit de dos números. El resultado de XOR es 1 si los dos bits son diferentes.
  • << (desplazamiento a la izquierda): Toma dos números, desplaza a la izquierda los bits del primer operando, el segundo operando decide el número de lugares a desplazar.
  • >> (desplazamiento a la derecha): Toma dos números, desplaza a la derecha los bits del primer operando, el segundo operando decide el número de lugares a desplazar.
  • &^ (Y NO): Este es un operador un poco claro.

Ejemplo: 

Go

// Go program to illustrate the
// use of bitwise operators
package main
   
import "fmt"
   
func main() {
   p:= 34
   q:= 20
      
   // & (bitwise AND)
   result1:= p & q
   fmt.Printf("Result of p & q = %d", result1)
      
   // | (bitwise OR)
   result2:= p | q
   fmt.Printf("\nResult of p | q = %d", result2)
      
   // ^ (bitwise XOR)
   result3:= p ^ q
   fmt.Printf("\nResult of p ^ q = %d", result3)
      
   // << (left shift)
   result4:= p << 1
   fmt.Printf("\nResult of p << 1 = %d", result4)
      
   // >> (right shift)
   result5:= p >> 1
   fmt.Printf("\nResult of p >> 1 = %d", result5)
      
   // &^ (AND NOT)
   result6:= p &^ q
   fmt.Printf("\nResult of p &^ q = %d", result6)
      
      
}

Producción: 

Result of p & q = 0
Result of p | q = 54
Result of p ^ q = 54
Result of p <> 1 = 17
Result of p &^ q = 34

Operadores de Asignación

Los operadores de asignación se utilizan para asignar un valor a una variable. El operando del lado izquierdo del operador de asignación es una variable y el operando del lado derecho del operador de asignación es un valor. El valor del lado derecho debe ser del mismo tipo de datos que la variable del lado izquierdo; de lo contrario, el compilador generará un error. A continuación se muestran diferentes tipos de operadores de asignación:

  • “=”(Asignación Simple): Este es el operador de asignación más simple. Este operador se utiliza para asignar el valor de la derecha a la variable de la izquierda.
  • “+=”(Agregar Asignación): Este operador es una combinación de los operadores ‘+’ y ‘=’. Este operador primero suma el valor actual de la variable de la izquierda al valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “-=”(Restar asignación): este operador es una combinación de los operadores ‘-‘ y ‘=’. Este operador primero resta el valor actual de la variable de la izquierda del valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “*=”(Multiplicar asignación): este operador es una combinación de los operadores ‘*’ y ‘=’. Este operador primero multiplica el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “/=”(asignación de división): este operador es una combinación de los operadores ‘/’ y ‘=’. Este operador primero divide el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “%=”(Asignación de módulo): Este operador es una combinación de los operadores ‘%’ y ‘=’. Este operador primero modula el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “&=”(Asignación AND bit a bit): Este operador es una combinación de los operadores ‘&’ y ‘=’. Este operador primero «Y bit a bit» el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “^=”(O exclusivo bit a bit): este operador es una combinación de los operadores ‘^’ y ‘=’. Este operador primero «OR exclusivo bit a bit» el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “|=”(Bitwise Inclusive OR): Este operador es una combinación de ‘|’ y operadores ‘=’. Este operador primero «O bit a bit inclusivo» el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “<<=”(Desplazamiento a la izquierda Y operador de asignación): Este operador es una combinación de los operadores ‘<<‘ y ‘=’. Este operador primero «Desplazamiento a la izquierda Y» el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.
  • “>>=”(Desplazamiento a la derecha Y operador de asignación): Este operador es una combinación de los operadores ‘>>’ y ‘=’. Este operador primero “desplaza a la derecha Y” el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda.

Ejemplo:

Go

// Go program to illustrate the
// use of assignment operators
package main
    
import "fmt"
    
func main() {
   var p int = 45
    var q int = 50
       
   // “=”(Simple Assignment)
   p = q
   fmt.Println(p)
       
   // “+=”(Add Assignment)
    p += q
   fmt.Println(p)
       
   //“-=”(Subtract Assignment)
   p-=q
   fmt.Println(p)
       
   // “*=”(Multiply Assignment)
   p*= q
   fmt.Println(p)
       
   // “/=”(Division Assignment)
    p /= q
   fmt.Println(p)
      
    // “%=”(Modulus Assignment)
    p %= q
   fmt.Println(p)
      
}

Producción: 

50
100
50
2500
50
0

Operadores varios

  • &: Este operador devuelve la dirección de la variable.
  • *: Este operador proporciona un puntero a una variable.
  • <-: El nombre de este operador es recibir. Se utiliza para recibir un valor del canal.

Ejemplo: 

Go

// Go program to illustrate the
// use of Misc Operators
package main
    
import "fmt"
    
func main() {
  a := 4
     
  // Using address of operator(&) and 
  // pointer indirection(*) operator
  b := &a 
  fmt.Println(*b) 
  *b = 7 
  fmt.Println(a) 
}

Producción: 

4
7

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *