变量是储存和访问内存的机制。 go 一般用 var 关键字声明变量
var identifier type
多个变量声明:
var identifier1, identifier2 type
var num int8;num = 124;
如果没有初始化,则变量默认为零值。
零值情况:
var b = true;var n = 124;
简写只能在函数中使用,不能全局使用
var nm string = 'ruims'// 可以简写为nm := 'ruims'
//非全局变量var a, b, c inta, b, c = 1, 2, 3//简写var a, b, c = 1, 2, 3a, b, c := 1, 2, 3//因式分解声明全局变量var (e intf string)
go 中声明的变量必须使用,否则报错
然而在函数中,可能包含多个参数,如果只使用一个,另一个就可以用空白标识符 _ 占位。
//只获取函数返回值的后两个_,numb,strs := numbers()
这两个概念和 JS 中的概念基本一致。
值类型:int、float、bool,string,变量值存于栈内存中,变量直接指向内存中的值
引用类型:派生类型,变量值存与堆内存中,变量指向堆内存的地址,这个地址被称为指针。
常量是一个简单值的标识符,运行时不会被修改。且只能是简单类型!
和变量一样,支持显示定义,隐式定义,声明简写,因式分解
const LENGTH int = 10const WIDTH int = 5var area int//多重赋值const a, b, c = 1, false, "str"const (Unknown = 0Female = 1Male = 2)
特殊常量,可以被编译器修改的常量。
默认为 0,每加一行,iota 自增 1
const(a = iota //0b //1c //2d = "ha" //独立值,iota += 1e //"ha" iota += 1f = 100 //iota +=1g //100 iota +=1h = iota //7, 恢复计数i //8)