变量定义: var 变量名 变量类型 或 变量名:=给变量所赋的值(变量无定义,有确切值时使用) 变量交换:b,a=a,b 无须设置中间变量
匿名变量: _ _为一个特使的标识符,被称为空白标识符,可用于变量的生命和赋值(任何类型均可),但任何赋给该标识符的值都将被抛弃。适用于在编码时遇到无名称的变量,类型,方法。匿名变量不占内存空间,也不会因多次声明无法使用。
函数声明:func 函数名() 返回类型
常量:const 变量名 变量类型(可写可不写) =
特殊变量:iota,可认为是一个可被编译器修改的常量,可被用作枚举值 const中每新增一行常量声明将使iota计数一次
类型转换:变量a :=转换的类型(变量b)
判断:if 条件 (与其他语言不同,无需将条件括起来)
fallthrough:switch匹配成功后不会执行其他的case,若需执行后面的case,则使用fallthrough强制执行后面的case语句,但不判断下一条的表达式是否为true
for range循环 用于遍历数组,切片
len(数组名) 求数组长度
可变参数 参数名 …参数类型
可变参数的定义要放在最后
一个函数列表只能有一个可变参数
Slice 切片(引用类型) 可以扩容的数组 定义:切片名:=make([] 类型,初始值)
切片截取:切片名[a:b] a<=序号<b
append(切片名,增加的内容) 切片扩容
cap() 可以测量切片最长可以达到多少
copy(切片1,切片2) 拷贝切片
Map 集合:一种无序的键值对的集合,通过 key 来快速检索数据 定义:集合名 :=make(map[键类型]值类型,初始容量(若是创建空Map,则可填int,string等)) Map 的容量是指 Map 中可以保存的键值对的数量,当 Map 中的键值对数量达到容量时,Map 会自动扩容 delete() 函数用于删除集合的元素, 参数为 map 和其对应的 key
值类型 操作的是数据本身 引用类型 操作的是数据的地址
猜谜游戏:strconv.Atoi(input) 将string类型的input转换为int类型,err判断是否成功 reader.ReadString('\n') reader.ReadString('\n')查找字符串中有无'\n',并分别返回给input,err(若有则为nil) strings.TrimSuffix(input, "\r\n") 去除掉input中的换行符