Go语言基础三——变量和常量

260 阅读2分钟

我正在参加「掘金·启航计划」

1、变量

Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。Go语言中的变量必须声明后才能使用。
变量是一个抽象概念,它有内存地址,数据类型和值组成:

  • 内存地址:给出了变量在内存中存储的其实地址,一般占用4或8字节(32位、64位机器)。
  • 数据类型:定义了变量占用内存的大小。
  • 值:表示内存地址中存放的内容。

1.1、标准声明

变量声明以关键字var开头,变量类型放在变量的后见面,行尾无需分号。

var 变量名 变量类型
var name string
var age  int

1.2、批量声明

var (
	a  string
  b  int
  c  bool
)

1.3、变量的初始化

Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作,会被初始化为类型默认的零值。

var  变量名 类型 = 表达式
var name string = "test"
var age  int    = 18

1.4、短变量声明

在函数内部,可以使用简略的:=方式声明并初始化变量,不能在函数外使用。

func main(){
		a := 1
    c := true
}

1.5、匿名变量

在使用多重赋值时,如果要忽略某个值,可以使用匿名变量。匿名变量用一个下划线_表示,多用于占位,表示忽略值。

匿名变量不占用命名空间,不会分配内存,可以重复定义。任何类型变量都可以赋值给它,但是不能使用它,也不能将它赋值给其他变量和参与运算(即只能作为左值) 。

for _, v := range map {

}

2、常量

2.1、常量定义

常量是恒定不变的值,用关键字const声明,常量在定义的时候必须赋值。

常量声明后在程序运行期间它们的值就不能再发生变化了。

const pi = 3.1415
const e  = 2.7182

//多个常量一起声明
const (
		a = 1
    b = 2
)

const 同时声明多个常量时,如果省略了值表示和上面一行的值相同

const (
	a = 100   //100
	b					//100
  c					//100
  d					//100
)

2.2、iota

iota是go语言的常量计数器,只能在常量的表达式中用,iotaconst关键字出现时被重置为0,const中每新增一行常量声明将使iota计数一次(iota可以理解为const语句块中的行索引),在定义枚举时很有用。

const (
	n1 = iota  //0
  n2				 //1
  _				   //
  n4				 //3 
  n5 =100    //插队
  n6         // 5
  n7 = iota  // 6
  n8         //7
)

2.2.1、iota练习

const (
            a, b = iota + 1, iota + 2 //1,2
            c, d                      //2,3
            e, f                      //3,4
        )