Table of Contents
- 1.var 变量名 变量类型
- 2.var 变量名 = 变量值 //自动推导
- 3.变量名:=变量值
- 变量名要是新声明的变量,否则会出错
- var a *int
- var a []int
- var a map[string] int
- var a chan int
- var a func(string) int
- var a error // error 是接口
var a int = 1 指定赋值
type A int
var (
a int = 1
b int = 1
)
a:=1 类型推断
Go定义常量
- const 关键字
- iota 关键字 (连续关键字的定义)
Go基本数据类型
- bool
- string 字符串
- int int8 int16 int32 int64
- uint uint8 uint16 uint32 uint64 uintptr
- byte // uint8
- rune int32
- float32 float64
- complex64 complex128
Go类型转换
- Go语言不支持隐式转换
- 别名和原有类型也不能隐式转换
Go预定值
- math中有MaxInt64,MaxFloat64等等值
指针类型(垃圾回收)
- 不支持指针运算
- string是值,默认是空串,不是nil
Go语言运算符
- 算数运算符
- + - * / % ++ –支持自增自减(后置自增自减)
- 比较运算符
- == != > < >= <=
- == 比较数组,是比较数组内的值,而不是比较元素地址(python)
- 逻辑运算符
- && || !=
- 位运算符
- & | ^ << >>
- &^ 按位清零 数字1 &^ 数字2
- 数字2的位为1,数字1的位就是0
Go循环
- 1.for循环不需要使用括号
- 2.while循环用for循环实现
-
//循环五次 n:=0 for n<5{ n++ } // 无限循环 for{ }
-
Go条件IF
- go的if支持赋值(条件后面是一个分号)
- 可以用来判断多返回值,是否有错误
-
if v,err:= isConnection(); err!=nil{ // 条件后面是一个分号 }
-
Go条件switch
- 可以判断任意类型
- case 可以放入多个元素,用,分割条件
- 默认带有break
- 可以不设定条件表达式
Go函数定义
- 格式:
-
func 函数名([参数列表..]) [返回参数]{ //返回多个值用() //函数参数分为值传递,和引用传递 //支持传递函数作为变量 函数体 }
-
Go的数组(大括号,…)
- 容量不可伸缩
- 声明 var a [3]int
- 明并初始化默认值
- […] 可以自动推导数组有多少元素
- 读取 赋值 a[0] = 1
- 声明并赋值 c:=[3]int{1,2,3}
- 添加元素 s = append(s,1)
- 存储空间扩展
- 如果空间不够了,就是以前的空间x2
Go的切片
- 容量可以伸缩,类似一个结构体,len,cap,不可比较
- 定义切片 s: = a [5] int {1,2,3,4,5}
- 和python差不多,但是不支持负索引,步长
- 包含开始索引,不包含结束索引
Map 声明
- map[类型] int{‘one’:1,…}
- m1:=map[类型]int{}
- m1[‘one’] =1
- m2 := make(map[string]int,10)
- 解决不存在的值为0,空值
4.扩展延伸知识
-
python中 a[‘key’]
- 执行a的__getitem__方法
-
python 推导式
- 可以多个for循环嵌套
-
lists = [(i, j) for i in range(10)
for j in range(10, 20)]
print(lists)
- python 测试文件
- go 变量定义 :的作用
- go _ 下划线的特殊作用
- 做一个占位,并不关心变量的值
- go len,cap,make函数
- go中的关键字 iota
- iota,特殊常量,可以认为是一个可以被编译器修改的常量。
- iota 出现第一次是0,第二次是1,在const中可以简写,只写在第一行
-
const (
a = iota
b = iota
c = iota
)
const (
a = iota
b
c
)
5.知识内容个人梳理
6.今天都复习了之前的什么内容
python中 a[‘key’]
- 执行a的__getitem__方法
python 推导式
- 可以多个for循环嵌套
-
lists = [(i, j) for i in range(10) for j in range(10, 20)] print(lists)
-
- 做一个占位,并不关心变量的值
- iota,特殊常量,可以认为是一个可以被编译器修改的常量。
- iota 出现第一次是0,第二次是1,在const中可以简写,只写在第一行
-
const ( a = iota b = iota c = iota ) const ( a = iota b c )
-
6.今天都复习了之前的什么内容