Go学习-变量和常量

简介: Go学习-变量和常量

标识符


在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。


Go语言关键字

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var

变量声明


Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用。


标准声明

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

批量声明

var (
    a string
    b int
    c bool
    d float32
)

变量初始化


Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false。 切片、函数、指针变量的默认为nil。

var 变量名 类型 = 表达式
var name string = "Guan"
var age int = 18
或者
var name, age = "Q1mi", 20
通过类型推导无需指定类型
var name = "Guan"
var age = 18

短变量声明

package main
import (
  "fmt"
)
// 全局变量m
var m = 100
func main() {
  n := 10
  m := 200 // 此处声明局部变量m
  fmt.Println(m, n)
}

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。)


  1. 1.函数外的每个语句都必须以关键字开始(var、const、func等)

  2. 2.:=不能使用在函数外。

  3. 3._多用于占位,表示忽略值。

iota


iota是go语言的常量计数器,只能在常量的表达式中使用。


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


iota常用使用例子:

使用_跳过某些值
const (
    n1 = iota //0
    n2        //1
    _
    n4        //3
  )
iota声明中间插队
const (
    n1 = iota //0
    n2 = 100  //100
    n3 = iota //2
    n4        //3
  )
  const n5 = iota //0
定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。) 
const (
    _  = iota
    KB = 1 << (10 * iota)
    MB = 1 << (10 * iota)
    GB = 1 << (10 * iota)
    TB = 1 << (10 * iota)
    PB = 1 << (10 * iota)
  )
多个iota定义在一行
const (
    a, b = iota + 1, iota + 2 //1,2
    c, d                      //2,3
    e, f                      //3,4
  )
相关文章
初识go变量,使用var和:=来声明变量,声明变量的三种方式
这篇文章介绍了Go语言中使用`var`和`:=`声明变量的三种不同方式,包括声明单个或多个变量、通过值确定数据类型以及在函数体内使用`:=`声明局部变量。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
|
1月前
|
存储 编译器 Go
go语言中的变量、常量、数据类型
【11月更文挑战第3天】
31 9
|
1月前
|
数据采集 监控 Java
go语言编程学习
【11月更文挑战第3天】
40 7
|
1月前
|
Go
go语言的复数常量
【10月更文挑战第21天】
43 6
|
1月前
|
Go
go语言的浮点型常量
【10月更文挑战第21天】
26 4
|
1月前
|
编译器 Go
go语言的整型常量
【10月更文挑战第21天】
34 3
|
1月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
26 2
|
1月前
|
Go
go语言定义常量
【10月更文挑战第20天】
23 2
|
1月前
|
Go
go语言使用常量和编译时常量表达式
【10月更文挑战第19天】
27 2
|
1月前
|
设计模式 测试技术 Go
学习Go语言
【10月更文挑战第25天】学习Go语言
26 4