这是我参与「第五届青训营 」笔记创作活动的第1天。
今天开启了我go语言的“hello world”。昨天上课之前配置好环境装好goland,今天正式开始学习go。
- go是强类型语言,每一个变量都有自己的变量类型
- 字符串、整数、浮点型、布尔型
- 字符串是内置类型,+ 拼接 , =判断是否相等
- 常量 没有确定类型 根据上下文自动确定类型
- if后面必须直接跟大括号
- switch后面可以不加变量,在case里判断
- go是参数类型后置
- 第一个值是真实返回值,第二个值是错误信息
- 指针常用用途:对传入的参数进行修改
- 中文一个字符长度为3
- %v 标准化输出,不区分数字和字符串,需要\n换行
- %+v详细的信息:字段名+值
- %#v更详细的信息:结构体类型名称+字段+值
- %.2f保留两位小数,需要\n换行
- bufio.NewReader把stdin转成只读流
- 通过时间戳生成随机数种子
String用法:
func main() {
a := "hello"
fmt.Println(strings.Contains(a, "ll")) // true
fmt.Println(strings.Count(a, "l")) // 2
fmt.Println(strings.HasPrefix(a, "he")) // true 前缀
fmt.Println(strings.HasSuffix(a, "llo")) // true 后缀
fmt.Println(strings.Index(a, "ll")) // 2 下标
fmt.Println(strings.Join([]string{"he", "llo"}, "-")) // he-llo 拼接
fmt.Println(strings.Repeat(a, 2)) // hellohello 重复
fmt.Println(strings.Replace(a, "e", "E", -1)) // hEllo 替换
fmt.Println(strings.Split("a-b-c", "-")) // [a b c] 分割
fmt.Println(strings.ToLower(a)) // hello 小写
fmt.Println(strings.ToUpper(a)) // HELLO 大写
fmt.Println(len(a)) // 5 长度
b := "你好"
fmt.Println(len(b)) // 6 中文一个字符长度为3
}
简单字典:
- 输入网址:fanyi.caiyunapp.com/#/
- 右键“检查”
- 输入good 点翻译
- 点击network,找到dict的请求,Request Method:POST
- 右键Copy as cURL(bash) 用git打开
- 输入网址:curlconverter.com/go/ 处理request
- 粘贴刚刚的curl请求,转换成go语言
- 输入网址:oktools.net/json2go
- 把浏览器中的Preview复制,点击“转换-嵌套” 生成对应的结构体。
- 然后看代码v4
- 用命令行执行v4
socks5代理:
执行go文件:go run proxy/v4/main.go 在git输入:curl --socks5 127.0.0.1:1080 -v www.baidu.com (-v代表打印请求过程所有细节)