Go 语言原理与实践 | 青训营

54 阅读2分钟

image.png image.png image.png

1.1什么是Go语言

image.png image.png

1.2Go语言入门 环境

image.png image.png

1.3基础语法

image.png

1.3.1变量

var name="value" 自己推断变量类型; 也可以显式类型 var c int =1 name:= type(value) 常量: const name ="value"
g := a+"foo" 字符串拼接 image.png

1.3.2 if else

{}花括号不能省略,if后的条件没有(); image.png

1.3.3 只有for循环

image.png

1.3.4 switch

C++中没有break,会继续跑完所有分支 而Go中默认不用加break,跑完一个case 就直接退出; 并且Go的switch更加强大,switch后面可以不加变量,case 后面可以加条件语句,替代if-else image.png

1.3.5 数组

真实业务中,因为数组长度固定很少用,更多使用切片 image.png

1.3.6 切片

append()必须返回值赋值给原切片; 追加元素; image.png

1.3.7 map无序

使用最频繁的数据结构 name :=make(map[key]value-type)

r,ok :=m["unknow"] ,ok 获取这个map里是否存在这个key image.png

1.3.8 range 快速遍历

image.png

1.3.9 函数

函数参数(name type) image.png

1.3.10 指针*

主要操作:对传入的参数 进行修改 比C++的指针 操作有限 image.png

1.3.11 结构体

image.png

1.3.12 结构体方法

func check(u user,pass string) bool{ return u.pass==pass } 修改参数位置 从普通函 数变成类成员函数 func (u user) check(pass string) bool{ return u.pass==pass } image.png

1.3.13 错误处理

不同于java的异常,Go用单独的返回值err error返回错误信息 能够很清晰的知道哪个函数出现了错误,用ifelse处理错误 image.png

1.3.14 字符串操作

Contains 是否包含 Count 字符串包含几个子字符串 Index 查找位置 Join 拼接 Repeat 重复拼接,等 len 一个中文字符会对应多个字符长度 image.png

1.3.15 字符串格式化

println 打印换行 printf() 格式化 %v代表各种变量值;%+v代表更加详细的name:value变量; %#v代表详细到 结构体.变量; %.2f 位数 image.png

1.3.16 JSON处理

只要保证结构体的第一个字母是大写, 用json.Marshal(结构体name)序列化 转成数组 打印String强转 json.Unmarshal(结构体name)反序列化 image.png

1.3.17 时间处理

image.png

1.3.18 数字解析 strconv包

ParseInt("字符串",进制(0代表自动推测) ,64代表返回64精度的整数 ) image.png

1.3.19 进程信息

image.png