go的常量与变量
一、常量
1.1 定义
常量使用关键字const 定义,用于存储不会变化的数据
定义方法 const identifier [type] = value
package main
// 常量定义
const P float64 = 3.14159
// 简短而优雅的写法
const(
CODE_STATUS = 100
START_NUM int = 1
START_NUM1 // 自动 延用上一行的数据值 1,
)
func main(){
}
1.2 常量定义的注意事项
1、常量名 最好大写,已区分于变量
2、常量定义后是可以不使用的
3、常量的定义可以不写 数据类型和变量一样,因为go编辑器会自动识别
4、常量的数据必须是不可变的,也就是必须是确定下来的数据
不规范的列子:
const NUM int = getNum() // getNum 函数的不获取是不确定的,所以不行
5、在一个const 内,如果一行没有赋值,则会默认赋值上一行的数据直至有值可以赋值
1.3 关于iota 的使用
用法 const identifier = iota
iota 就是int 类型
package main
const(
A int = iota // 0
B // 1
C // 2
)
const(
D = iota // 0
E ="jmz" // jmz
F // jmz
G = iota // 3
H = iota * 2 // 8
I // 10
J = iota // 6
K // 7
)
func main(){
}
1.4 iota 的讲解
1、iota 每一次开始值 都为0
2、iota 每遇到const ,都会从0开始
3、iota 在一个const内是每一行都会自动+1
二、变量
2.1 变量声明
var identifiter [type]
- 第一种 声明后再赋值
var v_name v_type
v_name = value
- 第二种 声明的过程中赋值
var v_name v_type = value
- 第三种 简单声明
v_name := value
- 第四种 优雅的声明方式
var (
v_name1 v_type = value
v_name2 = value2
v_name3 v_type3
)
2.2 多变量声明
var vname1,vname2,vname3 int = 1,2,3 // 多变量声明指明了类型所以后面都必须是该类型
var v1,v2,v3 = 23,"aaa","obj" // 多变量声明,没有指明类型,go编辑器会自动添加变量类型的
a1,a2,a3,a4 := 1,2,"3",'3' 多变量简短声明
2.3 声明与赋值
1、关于值类型变量的声明,go编辑器会自动赋予该变量初始值
int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil,引用类型变量为nil
记住所有的内存在 Go 中都是经过初始化的。
2、变量尽量遵循驼峰命名法
如:userName,startDate
3、变量声明后不能再次声明,否则会报错
简短声明中 只要有一个未声明,就不会报错
如:
num := 0
num,ok := iName.(int) // 这是断言,返回两个值
三、值类型与引用类型
在go 中有两个数据类型 值类型和引用类型,我数据类型中,具体讲解
&变量 可以获取变量的地址
如:
num := 12
println(&num)
值类型:
1、变量 直接指向 内存中的值
2、将一个变量 赋值给 另一个变量,实际是对内存中的值进行了拷贝
3、值类型的变量的值存储在栈中
引用类型:
1、引用类型的变量存储的是内存值所在的地址(数字),内存地址中第一个字所在的位置
2、将一个引用类型变量 赋值给 另一个引用类型变量,实际只是引用(地址)的复制
那些事值类型,那些事引用类型,请看下一章
如果喜欢看小说,请到183小说网