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语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 常量变量的声明:多个变量的初始化声明与赋值