一、变量
- 什么是变量
- 变量是为存储特定类型的值而提供给内存位置的名称。在go中声明变量有多种语法。
- 变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变
- 变量可以通过变量名访问
- 声明变量的规则
- 以字母或下划线开头,由一个或多个字母、数字、下划线组成
- 关键字
- var
- 定义变量
- 注意Go语言变量一旦定义后续必须要用到,否则会报错
- 定义变量格式:
- var 变量名 变量类型
var a int
var s string
- 变量赋值
- var 变量名 变量类型 = 值
- 根据值自行判定变量类型。
- 在函数内第一次赋值时可以使用:=替代var来定义赋值变量(在函数外不可以),编译器也可以自动决定类型
- 在函数外定义变量是包内变量(不是全局变量)
- 如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误
var a int = 5
var b string = "abbc"
var c,d,e,f = 3,5,true,"def" //不需要显示声明类型,自动推断
- 变量赋值与其他主流语言的区别
- 赋值可以进行自动类型推断
- 在一个赋值语句中可以对多个变量进行同时赋值(拿两个变量交换值举例)
func TestExchange(t *testing.T) {
a := 1
b := 2
//定义中间变量进行变量值的互换
//tmp := a
//a = b
//b = tmp
//在Go中可以这么写
a, b = b, a
t.Log(a, b)
}
- 创建一个test文件,编写测试程序
- 源码文件以_test结尾:xxx_test.go
- 测试方法名以Test开头: func TestXXX(t *testing.T){...}
二、常量
- 什么是常量
- 常量是一个简单值的标识符,在程序运行时,不会被修改的量。
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
- 常量还可以用作枚举
- 关键字 const
- const可以作为各种类型进行使用
const a,b = 3,4
var c int = int(math.Sqrt(a*a + b*b))
- 变量赋值与其它主流语言的区别
- 与其他语言差异不大
- Go语言可以快速设置连续值 例:
const (
Monday = iota + 1
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
func TestConstant(t *testing.T) {
t.Log(Thursday, Sunday) //输出结果为:4 7
}
//iota,特殊常量值,是一个系统定义的可以被编译器修改的常量值。
//iota只能被用在常量的赋值中,在每一个const关键字出现时,被重置为0,
//然后每出现一个常量,iota所代表的数值会自动增加1,
//iota可以理解成常量组中常量的计数器,不论该常量的值是什么,只要有一个常量,那么iota 就加1。
还可以很方便的做状态位的标识位
const (
Readable = 1