Go 语言上手-基础语言 | 青训营笔记
这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
go基础语法
声明变量
- var a
- var a elemtype
- f := elemtype()
- var a elemtype //不赋值
申明常量
- 把var改成const即可 //go中常量没有确定的类型,根据上下文自动确定
if语句
for语句
switch语句
- 不用break结束,会自动跳出
- case写条件分支来代替多个for循环
切片
- s := make([]string,3) //make
- append扩容必须重新赋值
- 可以和python一样切片,但不可以负数逆向切片
map
- go中的map完全无序
- 用两个变量获取map元素,后一个为bool型,表示这个值是否存在
range
func
struct
- 注意struct和struct方法创建的区别
func (u user) checkPassword(password string) bool { //方法
func checkPassword(u user,password string) bool { //函数
error
- go中常多接受一个err值,用 if err !=nil{ 判断err是否存在,若存在则需要进行处理
fmt
- 注意println与printf的区别
- go中的printf可以用%v打印任何类型
json
- 只需要保证结构体的每个公开字段首字母大写,就能用json.Marshal(a)对其序列化
time
- 与python的time基本相同,但其格式化使用的是t.Format("2006-01-02 15:04:05"),特殊时间
env
- os.Args 用于获取命令行参数,第一个参数是地址,可以用于直接命令行输入
- os.Getenv 获取环境变量
- os.Setenv 写入环境变量
- exec.Command 快速启动子进程,并获取其输入输出
实例
猜谜游戏
- vscode的调试台不可以直接输入,需要在终端执行
- bufio读取输入较为复杂,仅为了提前学习
命令行字典
socks5
- curl --socks5 127.0.0.1:1080 -v www.qq.com //连接测试
- nc测试需要安装