golang的变量声明
作者:matrix 发布时间:2023-01-31 分类:Golang
变量声明
Golang属于强类型语言,且定义的变量一定要被使用不然会编译报错。
Golang可以使用:=
的语法糖来自动实现类型推断,一般都在非全局变量中使用。var
的声明多用在全局变量声明。
变量赋值后必须使用,否则编译失败
例外: _变量
表示占位变量。不能赋值和调用,仅为占位作用。
var a int = 16
var a = 16 //类型自动推断
//等同于短变量声明
a := 16
//多变量快捷声明
var a, b int
var a, b, c = 16, true, "str" //可以不同类型
变量作用域
{
var b string = "hi~"
fmt.Println("asd")
fmt.Println("b->", b)
}
num := 12
{
a, num := false, 5 // 这里的num会被认为是一个新变量
b := 100
fmt.Println(a, num, b)
}
fmt.Println(a, num) // a: undefined
{ ... }
代码块会限制变量作用域
变量默认值
基本数据类型默认值都是 0、空字符串这些,声明时就划分内存空间
//声明即初始化(划分内存空间)
var a int //0
//等同于 var a int = 0
var a string //""
var a bool //false
var a rune //0
var a byte //0
var a float32 //0
...
其他类型都默认为nil值
var a error
// var a error = nil
var a *int
var a []int
var a map[string]string
...
参考:
https://mp.weixin.qq.com/s/m8iQdGu7g_8PX4s9mFbkDQ