go 学习笔记基础篇(一)
golang
变量声明
-
var 声明单个变量
var 变量名称 类型 变量名称命名: a. 字母、数字、下划线组成,首字母不能为数字 b. 变量名称区分大小写 c. 关键字 保留字不可作为变量名称 d. 建议使用驼峰式命名,大写表示公有(StudentAge),小写表示私有(studentAge) e. 特有名词根据是否私有全大写或小写 变量声明后没有初始化的话, 值为类型默认值 变量声明后使用,同一个作用域不可重复声明
-
变量初始化方式
-
先声明后赋值
func main() { var a string a = "test" // 输出变量类型 fmt.Printf("a=%v a的类型是%T", a, a) }
-
声明同时赋值
func main() { var a string = "test" fmt.Printf("a=%v a的类型是%T", a, a) }
-
类型推导
func main() { var a = "test" fmt.Printf("a=%v a的类型是%T", a, a) }
-
-
一次声明多个变量
func main(){ // 一次声明多个变量 // var a, b, c = 10, 23, 46 var ( a int b string c string ) a = 30 b = "test" c = "hello" fmt.Printf("a=%v b=%v c=%v", a, b, c) }
-
短变量声明法(只能声明局部变量)
变量名称 := 初始值 短变量声明一次声明多个变量 a,b,c := 10,4,"test"
-
匿名变量
- 不占用命名空间,不存在重复声明问题
- 当函数返回两个值,但只需要使用其中一个值时,另一个返回值可用匿名变量接收
- "_"
常量 [const] 大写
- 定义时必须赋值
const a = 10
- 常量的值不可改变
- const 同时声明多个常量,如果只对第一个值赋值,则表示剩下为赋值常量值与第一个值保持一致
const ( a = 10 b c ) fmt.Println(a, b, c)
- const 和 iota 联合使用
func main(){ const ( a = iota // 0 b // 1 c // 2 ) fmt.Println(a, b, c) const ( n1 = iota // 0 n2 = 100 // 100 插队 n3 = iota // 3 可跳过 n4 // 4 ) fmt.Println(n1, n2, n3, n4) }
数据类型
基本数据类型
-
int 整型 默认int为int64 占8个字节
有符号整型
- int8 内存空间中占1字节 -128~127
- int16 2字节
- int32 4字节
- int64 8字节
无符号整型
- uint8 0-255
- uint16
- uint32
- uint64
字节:
1024Bety(字节) = 1KB
可以通过unsafe.Sizeof(num) 查看所占字节数
-
浮点型
- float32 占4个字节
- float64 占8个字节
浮点型格式化输出 占位符'%f'默认保留6位小数,4舍5入, 自定义保留小数位 例如:"%.2f"
-
布尔类型 bool
Go 中布尔类型 只有 true和false两个值 注意: a. 布尔类型变量的默认值为false b. Go 语言中不允许将整型强制转换为bool类型 c. bool类型无法参与数值运算,也不可以和其他类型进行转换
-
字符串类型 string
- Go中字符串需要使用双引号
- 字符串转义符 \
- 多行字符串用反引号 ``
- 一个字母占一个字节,一个汉字占三个字节
- 拼接字符串可以使用 ‘+’号或者 使用 Sprintf 例如:str3 := fmt.Sprintf("%v %v", str1, str2)
- 使用 strings 做字符串的常用操作
-
byte 和 rune类型 (字符)
- 字符属于int 型
- 字符使用单引号
- golang 汉字使用utf8编码, 编码后的值是int类型
- unit8类型 也叫byte类型,代表ascii 码的一个字符
- rune 类型 代表一个utf8字符,rune类型兼容byte类型数据