Golang 零值

Golang 零值

在Go语言中,每当我们通过声明或使用new为变量分配内存时,如果变量没有被明确初始化,那么这类变量的值会自动被初始化为零值。零值的初始化是递归进行的。因此,如果没有指定任何值,结构数组的每个元素的字段都是零。以下是不同类型变量的零值。

Type Zero Value
Integer 0
Floating point 0.0
Boolean false
String “”
Pointer nil
Interface nil
Slice nil
Map nil
Channel nil
Function nil

例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)
}

输出

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[]

例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")
    }
  
}

输出

False
True
True
True
True
True
True

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程