学习笔记day1

72 阅读2分钟

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 代理项目

以前没接触过这方面的知识,这个项目很好的磨练了网络编程的知识.虽然还是有点蒙.

(今天太忙了,复习的时候再补上)