datetime:2020/8/18 10:57
author:nzb
Go语言中的变量和常量
1、Go语言中变量的声明
Go语言变量是由字母、数字、下划线组成,其中首个字符不能为数字。Go语言中关键字和保留字都不能用作变量名
Go语言中变量需要声明后才能使用,同一作用域内不支持重复声明。并且Go语言的变量声明后必须使用。
变量声明后,没有初始化,打印出来的是空
1.1、如何定义变量
方式1
var name = "zhangsan"
方式2:带类型
var name string = "zhangsan"
方式3:类型推导方式定义变量
在函数内部,可以使用更简略的 := 方式声明并初始化变量
注意:短变量只能用于声明局部变量,不能用于全局变量声明
变量名 := 表达式
方式4:声明多个变量
类型都是一样的变量
var 变量名称, 变量名称 类型 a, b, c := 1,2,"3"
类型不一样的变量
var ( 变量名称 类型 变量名称 类型 )
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)
匿名变量用一个下划线“_”表示
func Getuser(){ return username, age } var username, _ = Getuser()
示例代码
代码
package main import "fmt" func main() { var a = 10 fmt.Printf("%d\n", a) var name1 = "zhangsan" var name2 string = "lishi" name3 := "wangwu" fmt.Println(name1) fmt.Println(name2) fmt.Println(name3) fmt.Printf("name1=%v, name2=%v, name3=%v", name1, name2, name3) var b, c string b = "b" c = "c" fmt.Printf("\nb=%v, c=%v\n", b, c) var ( d int e string f bool ) d = 100 e = "string" f = true //var ( // d int = 1 // e string = 'e' // f bool = false //) fmt.Printf("d=%v, e=%v, f=%v\n", d, e, f) }
输出
10 zhangsan lishi wangwu name1=zhangsan, name2=lishi, name3=wangwu b=b, c=c d=100, e=string, f=true
2、常量
2.1、如何定义常量
相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。
// 定义了常量,可以不用立即使用
const pi = 3.14
// 定义两个常量
const(
A = "A"
B = "B"
)
// const同时声明多个常量时,如果省略了值表示和上面一行的值相同
const(
A = "A"
B
C
)
2.2、 Const常量结合iota的使用
iota是golang 语言的常量计数器,只能在常量的表达式中使用
iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
每次const出现,都会让iota初始化为0【自增长】
const a = iota // a = 0
const (
b = iota // b=0
c // c = 1
d // d = 2
)
const iota使用_跳过某些值
const (
b = iota // b=0
_
d // d = 2
)
多个赋值
const (
n1, n2 = iota + 1, iota + 2 //1 2
n3, n4 // 2 3
n5, n6 //3 4
)
3、Go语言变量、常量命名规则
- 变量名必须有数字、字母、下划线组成
- 标识符不能是数字
- 标识符不能是保留字和关键字
- 变量的名字是区分大小写的
- 标识符(变量名称)一定要见名思意:变量名称建议用名词,方法名称建议用动词
- 变量命名一般采用驼峰式。