Valor cero en Golang

En el lenguaje Go, cada vez que asignamos memoria para una variable con la ayuda de la declaración o mediante el uso de new y si la variable no se inicializa explícitamente, el valor de este tipo de variables se inicializa automáticamente con su valor cero. La inicialización del valor cero se realiza recursivamente. Entonces, cada elemento de la array de las estructuras tiene sus campos cero si no se especifican con ningún valor. Los siguientes son los valores cero para diferentes tipos de variables:

Escribe Valor cero
Entero 0
Punto flotante 0.0
booleano falso
Cuerda “”
Puntero nulo
Interfaz nulo
Rodaja nulo
Mapa nulo
Canal nulo
Función nulo

Ejemplo 1:

// Go program to illustrate the concept of zero value
package main
  
import "fmt"
  
// Main Method
func main() {
  
    // Creating variables
    // of different types
    var q1 int
    var q2 float64
    var q3 bool
    var q4 string
    var q5 []int
    var q6 *int
    var q7 map[int]string
  
    // Displaying the zero value
    // of the above variables
    fmt.Println("Zero value for integer types: ", q1)
    fmt.Println("Zero value for float64 types: ", q2)
    fmt.Println("Zero value for boolean types: ", q3)
    fmt.Println("Zero value for string types: ", q4)
    fmt.Println("Zero value for slice types: ", q5)
    fmt.Println("Zero value for pointer types: ", q6)
    fmt.Println("Zero value for map types: ", q7)
}

Producción:

Zero value for integer types:  0
Zero value for float64 types:  0
Zero value for boolean types:  false
Zero value for string types:  
Zero value for slice types:  []
Zero value for pointer types:  <nil>
Zero value for map types:  map[]

Ejemplo 2:

// Go program to check the variable
// contains zero value or not
package main
  
import "fmt"
  
func main() {
  
    // Creating variables of different types
    var q1 int = 2
    var q2 float64
    var q3 bool
    var q4 string
  
    // Slice
    var q5 []int
  
    // Pointer
    var q6 *int
  
    // Map
    var q7 map[int]string
  
    // Checking if the given variables
    // contain their zero value or not
    if q1 == 0 {
      
        fmt.Println("True")
          
    } else {
      
        fmt.Println("False")
    }
  
    if q2 == 0 {
      
        fmt.Println("True")
          
    } else {
      
        fmt.Println("False")
    }
  
    if q3 == false {
      
        fmt.Println("True")
          
    } else {
        fmt.Println("False")
    }
  
    if q4 == "" {
      
        fmt.Println("True")
          
    } else {
      
        fmt.Println("False")
    }
  
    if q5 == nil {
      
        fmt.Println("True")
          
    } else {
      
        fmt.Println("False")
    }
  
    if q6 == nil {
      
        fmt.Println("True")
          
    } else {
      
        fmt.Println("False")
    }
  
    if q7 == nil {
      
        fmt.Println("True")
          
    } else {
      
        fmt.Println("False")
    }
  
}

Producción:

False
True
True
True
True
True
True

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 *