Day1 Go语言基础
2023-5-12
1.1 go语言的优势:
-
高性能,高并发
-
丰富标准库
-
完善工具链
-
静态链接
-
快速编译
-
跨平台
-
垃圾回收
1.2 go基础
- json支持
- strings对字符串的操作
a := "hello"
fmt.Println(strings.Contains(a, "ll"))
fmt.Println(strings.Count(a, "l"))
fmt.Println(strings.HasPrefix(a, "he"))
fmt.Println(strings.HasSuffix(a, "llo"))
fmt.Println(strings.Index(a, "ll"))
fmt.Println(strings.Join([]string{"he", "llo", "go"}, "-"))
fmt.Println(strings.Repeat(a, 2))
fmt.Println(strings.Replace(a, "e", "E", -1))
fmt.Println(strings.Split("a-b-c", "-"))
fmt.Println(strings.ToLower(a))
fmt.Println(strings.ToUpper(a))
fmt.Println(len(a))
b := "你好"
fmt.Println(len(b))
- time包
2 猜数小项目
本身没啥难的,但是这个项目用到几个点:
- 使用流来处理用户的输入
bufio是一个很重要的流处理包.里面包含了众多可以处理(不局限于)输入输出的流,这个小项目使用了流来处理用户的输入.
- 时间种子的设置
rand是一个产生随机数的包,而想要真正实现每次随机出的数不一样,还需要设置随机数种子rand.Seed(time.Now().UnixNano())
3 词典小项目
个人觉得挺有意思的,主要能练到网络编程的相关知识.
- 服务的请求与抓取
在浏览器的开发者模式中可以找到相关的模块,可以复制为cURL,并利用代码转换网站将curl命令转换为代码.
- 报文的接收与处理
当我们成功与服务器发送请求并接收到返回的报文时,通常十分冗长,我们一方面需要筛选出有用的信息,另一方面要便于输出.较为标准的做法是实现一个struct使每项信息一一对应.这时候又可以用到代码生成网站来完成.
- 查询单词的包装
查询部分的包装是非常有必要的,一方面可以实现复用,另一方面也可以更容易地实现其他翻译引擎的使用,可以查询两个翻译引擎并分别输出结果.
4 代理项目
以前没接触过这方面的知识,这个项目很好的磨练了网络编程的知识.虽然还是有点蒙.
(今天太忙了,复习的时候再补上)