变量
-
标识符是用来表示GO的变量名或者函数名,以字母或者_开头。后面跟字母或者数字
例子: A123 adb_123 _a238
-
关键字是GO语言预先设定好的,具有特殊含义的标识符,在设置变量的时候,不能使用
变量的语法
var 变量名称 类型
例一
var a int
var b string
var c bool
var d int = 8
var e string = “hello”
例二
如果不设置相关内容,就会走每个类型的默认值
var (
a int //0
b string //“”
c bool //false
d int = 8 // 8
e string = “hello” //hello
)
// 初始化的时候定义变量
f := 10 // go编译器会自动识别变量的类型
go语言中定义的变量必须被用到,否则会报错(但是也有解决办法:如果定义的变量d未被用到,我们可以使用 _ = d 来忽略变量d)
常量
定义:常量使用const修饰,代表永远只读的,不能修改,一般用来定义一些公用的不变的变量
常量的语法
const 常量名称 [type]=类型 或者 const 常量名称 类型
例一
const b string = “hello world”
const b = “hello world”
const Pi = 3.1414926
例二
const(
a = 1
b = 2
c = 3
)
iota 的用法
iota在golang中表示常量计数器
使用规则
- 每当const出现时,都会是iota初始化为0
- const中每新增一行常量声明将使iota计数一次
const (
a = iota // a=0 在常量定义中,iota初始化为0
b = iota // const常量新增一行,iota加1
c = 3 // 定义一个常量
d // 不赋值,和上一个常量相同
e = iota // 每定义一次常量都iota都加1,现在已经新增4行,现在e=4
)
数据类型
整数和浮点数
a. int8、int16、int32、int64
b. uint8、uint16、uint32、uint64
c. int 和 uint,和操作系统平台相关
d. float32 和 float64浮点类型
e. 所有整数 初始化为0,所有浮点数初始化为0.0,布尔类型初始化为false
说明
- go是强类型语言,不用类型之间相加和相互赋值是不允许的
- 如果针对两个类型相加,需要转化成一个相同的类型进行计算
字符串
string 类型,使用双引号控制
字符串的底层就是一个byte的数组,可以和[]byte类型相互转换
例: var a string = "hello word"
引号说明
- 双引号: 可以包含控制字符,表示一个字符串,其实质是一个byte类型的数组,可以使用索引和len访问
- 反引号: 所有的字符都原样输出
- 单引号:单引号里面只能包含一个字符,默认是 rune类型(等同于int32),输出的值改会自动改为字符的ASCII值。
字符串的常用操作
a. ⻓度:len(str)
b. 拼接:+,fmt.Sprintf
c. 分割:strings.Split
d. 包含: strings.Contains
e. 前缀或后缀判断:strings.HasPrefix, strings.HasSuffix
f. ⼦串出现的位置: strings.Index(), strings.LastIndex()
**g. **join操作: strings.Join(a[]string, sep string)
字符串中的占位符
%v 相应值得默认格式
%+v 打印结构体时,会添加字段名称
%#v 相应值的go语法表示,展示map使用
%T 相应值的类型输出
%t 布尔值的输出:true或者false
%d 表示十进制
%p 表示指针变量的地址