一、什么是变量
-
- 首先我们要理解这么一个概念,在程序的运行过程中所有数据是保存在内存中的,我们代码中想使用这个数据的时候就要从内存中找,而变量的作用类似就是将内存地址保存,之后直接通过这个变量找内存中的数
- 在Go语言中,如果你变量申明之后没有使用,也会报错
二、申明变量
-
- 标准申明
var 变量名 变量类型 var mogu string var zhouyan int
-
- 批量申明
var ( mogu string zhouyan int )
三、使用变量
在Go语言申明变量的时候,自动会对变量对应的内存区进行初始化操作,每个变量会被初始化成类型其默认值,举几个例子:整形和浮点型默认的值为0,字符串默认值为空字符串,布尔类型默认值为flase,切片、函数、指针变量默认值为nil。
申明变量时并设定初始值
var mogu string = "张鹏程" var zhouyan int = 18 //同时申明多个 var mogu,zhouyan = "张鹏程","18"
类型推导
//类型推到的作用是不会要自己申明类型,编译器通过你的值来推推导出变量类型 var name = "张鹏程" //后面跟着字符串,则编译器自动识别为string类型 vat age = 16 //后面跟着int类型编译器自动识别为int类型
短变量申明
短变量申明是相对的概念,我们正常var name string 是在函数外部申明的,作用域在全局,而短变量申明在函数内部申明,作用域在函数内部
name := "张鹏程" age := 16
匿名变量
我们知道,在多重赋值的时候,如果想忽略某个值我们可以使用_来代替
package main import "fmt" func test() (string, int) { //定义一个函数,抛出的参分别是字符串和整型 niubi := "张三" //定义一个短申明变量张三 money := 10 //定义一个短申明变量10 return niubi, money //返回两个变量 } func main() { mniubi, _ := test() //使用mniubi接受test的第一个参忽略第二个参 fmt.Println(mniubi) //输出 _, mmoney := test() //使用mmoney接受test第二个参忽略第一个参 fmt.Print(mmoney) //输出 } 结果: PS D:\goproject\src\go_code\project01> go run .\hello.go 张三 10
四、常量
常量是相当于变量的概念,常量多用于定义程序运行期间不会改变的那些值,常量在定义时必须加赋值
const one = 1 const two = 2 //批量申明 const ( one = 1 two = 2 ) //批量申明常量且下面的值与上面相同 const ( a = 1 b //后面的值遵循上一个常量 c d )
五、iota
iota是go语言的常量计数器,只能在常量的表达式中使用。
iota在const关键字作为值的时候会将常量重置为0。且在批量申明相同iota时下面的值将会自增,举个栗子
const ( a = iota //此时作为初始的iota,会将常量值初始为0 b //遵循上面的iota,但是iota会自增,此时b的值为 1 c //2 d //3 )
我们还可以通过_跳过一次自增
const ( a = iota //0 b //1 c //2 _ d //4 )
当然我们在iota声明中插入一个常量也会跳过
const ( a = iota //0 b //1 c = 100 d //2 ) const ( e = iota //0 )
多个iota定义在一行
const ( a,b //0 1 c,d = iota + 1 ,iota + 2 //3 4 )