文章目录
- 一、变量声明
- 二、变量初始化
- 三、多重赋值
一、变量声明
go语言是静态类型语言,因此变量的类型是明确的,编辑器本身也会检查变量类型的正确性;变量是一段或多短用来存储数据的内存。
- 全局变量
在函数体外声明的变量称之为全局变量,全局变量只需要在一个源文件中定义,就可以在所有源文件中使用,当然,不包含这个全局变量的源文件需要使用“import”关键字引入全局变量所在的源文件之后才能使用这个全局变量。全局变量声明必须以 var 关键字开头,如果想要在外部包中使用全局变量的首字母必须大写。
- 局部变量
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,函数的参数和返回值变量都属于局部变量。局部变量不是一直存在的,它只在定义它的函数被调用后存在,函数调用结束后这个局部变量就会被销毁。
- 匿名变量
匿名变量的特点是一个下划线,下划线本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。匿名变量不占用内存空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。
- 形式参数
在定义函数时函数名后面括号中的变量叫做形式参数(简称形参)。形式参数只在函数调用时才会生效,函数调用结束后就会被销毁,在函数未被调用时,函数的形参并不占用实际的存储单元,也没有实际值。形式参数会作为函数的局部变量来使用。
声明变量一般使用var关键字,go语言声明变量时将变量类型放在名称之后,这样做可以避免含糊不清的声明形式
var name type
在go语言中,以下形式代表均声明为指针类型,这是与其他语言不同的
var a,b *int
go语言的基本类型
- bool 默认值false
- string 默认值""
- int、int8、int16、int32、int64 默认值0
- uint、uint8、uint16、uint32、uint64、uintptr 默认值0
- byte //uint8别名
- rune //int32别名 代表一个unicode码
- float32、float64 默认值0.0
- Complex64、cpmplex128 默认值0+0i
当一个变量被声明后,系统自动赋予它该类型的零值;所有的内存在go中都是经过初始化的,变量命名采用首个单词小写,每个新单词首字母大写的形式
变量声明
标准
var 变量名 变量类型
批量
var (
a int
b string
c []float32
d func() bool
e struct {
x int
}
)
简短
- 定义变量,同时显式初始化。
- 不能提供数据类型。
- 只能用在函数内部。
名字 := 表达式
二、变量初始化
标准格式
var 变量名 类型 = 表达式
编译器推导类型的格式
数据类型由右值推导得出
var 变量名 = 表达式
短变量声明并初始化
变量名 := 表达式
三、多重赋值
package main
import (
//fmt包含有格式化I/O函数
"fmt"
)
func main() {
var a int = 100
var b int = 200
b, a = a, b
fmt.Println(a, b)}