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语言进行声明时要初始化操作,稍有不慎,就会造成不可预知的后果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值