博客
关于我
Go语言基础之变量和常量
阅读量:442 次
发布时间:2019-03-06

本文共 2116 字,大约阅读时间需要 7 分钟。

Go语言入门到放弃完整教程目录

欢迎来到《Go语言从入门到放弃》的完整教程目录。这里不仅提供Go语言的完整学习内容,还包含Python、人工智能、PyTorch、TensorFlow、爬虫等多个技术方向的教学资源,助力你成为一名多能的开发者。


一、标识符与关键字

二、标识符

标识符是编程语言中程序员定义的具有特殊意义的词,包括变量名、常量名、函数名等。Go语言中,标识符由字母、数字和下划线组成,且只能以字母或下划线开头。常见的标识符示例包括:abc__123a123

三、关键字

关键字是编程语言中预先定义好的具有特殊含义的标识符,不建议用于变量名。Go语言中共有25个关键字,以下是完整列表:

  • breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar

此外,Go语言中还有37个保留字,常见的包括:truefalseiotanilintuintfloat32string等。


四、变量

五、变量的来历

程序运行过程中的数据保存在内存中,变量用于保存数据的内存地址,方便后续通过变量操作数据。通过变量代替内存地址,不仅提高了代码的可读性,也避免了直接操作内存的危险。

六、变量类型

Go语言中的每个变量都有特定的类型,且变量必须经过声明后才能使用。变量类型决定了数据的存储方式和操作方式。常见的变量类型包括整型、浮点型、布尔型等。Go语言支持丰富的类型系统,变量声明后会自动初始化为类型默认值。

七、变量声明

Go语言中的变量需要通过var关键字声明,同一作用域内不支持重复声明。变量声明后必须使用,且支持批量声明和初始化。

7.1 标准声明

变量声明格式为:

var 变量名 变量类型

示例:

var name string
var age int

7.2 批量声明

支持一次性声明多个变量:

var (a string b int c bool d float32)

7.3 变量初始化

Go语言在变量声明时会自动初始化为类型默认值,例如:

  • 整型和浮点型变量默认为0
  • 布尔型变量默认为false
  • 切片、函数和指针变量默认为nil

变量也可以在声明时指定初始值:

var name string = "Q1mi"
var age int = 18

支持多变量一次性声明和初始化:

var name, age = "Q1mi", 20

7.3.1 类型推导

当变量类型省略时,编译器会根据右边表达式推导变量类型:

var name = "Q1mi"
var age = 18

7.3.2 短变量声明

在函数内部,可使用:=声明并初始化局部变量:

func main() {
n := 10
m := 200
fmt.Println(m, n)
}

7.3.3 匿名变量

在多值赋值时,可使用匿名变量_忽略某些值:

func foo() (int, string) {
return 10, "Q1mi"
}
func main() {
x, _ := foo()
_, y := foo()
fmt.Println("x=", x) // 输出: x=10
fmt.Println("y=", y) // 输出: y=Q1mi
}

八、常量

九、iota

iota是Go语言中的常量计数器,只能在const表达式中使用。iotaconst块中重置为0,每新增一行iota计数一次。

9.1 iota示例

const (
n1 = iota // 0
n2 // 1
n3 // 2
n4 // 3
)

9.2 常见用法

  • 插队使用:
const (
n1 = iota // 0
n2 = 100 // 100
n3 = iota // 2
n4 // 3
)
  • 定义数量级:
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语言教程的基础部分,后续将继续深入讲解函数、控制结构、接口等高级主题,助力你掌握Go语言的核心知识。

转载地址:http://bxgyz.baihongyu.com/

你可能感兴趣的文章
NOI-1.3-11-计算浮点数相除的余数
查看>>
noi.ac #36 模拟
查看>>
NOI2010 海拔(平面图最大流)
查看>>
NOIp2005 过河
查看>>
NOIP2011T1 数字反转
查看>>
NOIP2014 提高组 Day2——寻找道路
查看>>
noip借教室 题解
查看>>
NOIP模拟测试19
查看>>
NOIp模拟赛二十九
查看>>
Vue3+element plus+sortablejs实现table列表拖拽
查看>>
Nokia5233手机和我装的几个symbian V5手机软件
查看>>
non linear processor
查看>>
Non-final field ‘code‘ in enum StateEnum‘
查看>>
none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)
查看>>