go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的类型零值

Posted Locutus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的类型零值相关的知识,希望对你有一定的参考价值。

类型零值

当一个变量或者新值被创建时,如果没有为其明确指定初始值,go语言会自动初始化对应类型的零值。零值并不等于空值,而是当变量被声明为某种类型后的默认值。各类型零值如下:

  • 布尔型变量的默认零值为false,bool : false
  • 整型和浮点型变量的默认零值为0,int : 0,float : 0.0
  • 字符串变量的默认零值为空字符串,string : ‘’
  • 切片、函数、指针变量的默认零值为nil,pointer、function、interface、slice、channel、map : nil

对于复合类型,比如数组和结构体,go语言会自动递归地把每一个元素初始化为对应类型的零值。示例:

package main

import (
	"fmt"
	"math"
)

func main() {
	var a int8
	var b float32
	var c bool
	var d string
	var e [2]int   // int型数组,含2个元素
	var f [3]bool  // bool型数组,含3个元素

	fmt.Println(a, b, c, d, e, f)
	fmt.Println(math.MaxInt32) // 类型取值范围检查,32位整型的最大值为2^32/2 - 1
}

在声明变量时,go语言自动初始化变量对应的内存区域,为每个变量赋类型零值。当然,我们可以在声明变量时赋予一个非零的初始值。

注:在声明变量时,C语言编译器并不会对变量对应内存区域进行清理操作。此时,变量值可能是完全不可预期的结果。开发者需要习惯在使用C语言进行声明时要初始化操作,稍有不慎,就会造成不可预知的后果。

以上是关于go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的类型零值的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:单个变量的声明与赋值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的数值类型转换

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:变量初始化声明和变量赋值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:多个变量的初始化声明与赋值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的类型零值

go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的生命周期:堆(heap)