这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
学习收获:经过今天的学习,掌握了Go语言的基础语法,并且能够用Go语言实现一些简单的案例。
以下是我在学习过程中思考和总结的笔记,希望对大家有所帮助。
课程重点内容
今天的课程中讲解了如下的知识点,其中Go基础语法是今天学习的重点
- Go语言简介
- Go语言基础语法
- Go语言案例实现
- 猜数游戏
- 命令行词典
- SOCKS5代理
知识点介绍
下面我将对本节课程中的知识点进行总结介绍,并且对今天的学习重点进行详细说明。
Go语言简介
Go语言可以说是为并发而生,高性能、高并发是Go语言最大的特点。
其次,Go语言还有着丰富的标准库以及完善的工具链,可以降低开发成本。Go语言还拥有快速编译的特性,这是其他语言无法相比的。Go语言也拥有和Java类似的垃圾回收机制,使得我们在开发的过程中不用过多的去考虑资源回收的问题。
Go语言的语法较为简单,喜欢的同学可以去学习一下。
Go语言基础语法
接下来是Go语言的基础语法,主要记录常用并且课程中难以理解的。 首先是输出hello world,具体实现代码如下:
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
package 代表这个文件是属于那个包的。import代表我们需要导入的包,fmt包可以用来向控制台输入输出字符串、格式化字符串。调用fmt包下的Println()函数就可以向控制台输出我们想要输出的内容。
接下来我们看如何来定义变量:
var a int = 1
var b float
c := "你好"
上面是定义变量的三种方式,第一种方式中 int 可以省略,第二种方式中变量 b 需要在下面的程序中被用的总才可以,第三种是Go中最常用的定义方式。
而关于if else 语句与c或者c++类似,区别在于判断条件不用使用小括号包含,并且判断条件后面必须跟着大括号,在大括号中去写接下来的语句。
最后再看一下结构体,我认为在后面的项目中,结构体会是经常用的。
type user struct {
name string
password string
}
上面是一个普通的结构体,我们可以读取结构体中的数据,或者通过定义函数来对结构体中的数据进行修改。
type userInfo struct {
Name string
Age int `json:"age"`
Hobby []string
}
而这个结构体中的字段首字母是大写的,首字母是大写的字段就是公开字段。只要每一个字段都是公开字段,我们就可以用json.Marshal将其序列化成一个byte数组,从而转成一个JSON字符串。
课程案例优化思路
课程中实现了三个小的应用案例,并且在最后布置了将案例1和案例2进行优化的作业,这里主要记录一下对案例2命令行词典的优化思路。
首先需要增加另一种翻译引擎的支持,我们可以安装原本的实现思路,再去实现使用另一种翻译引擎来进行翻译。
其次,当我们有了对两种翻译引擎的支持之后,需要并行的请求两个翻译引擎来提高速度。这时候我们可以考虑使用 go关键字 来实现两个翻译引擎查询的并发操作。只要有goroutinue返回了结果,我们就结束所有的goroutinue,并打印结果。
课后总结
本节课最重点的任务是掌握Go语言的基础语法以及标准库。并通过案例来巩固自己所学习的知识。
本节课程难度相对来说还算容易,下面是我所认为的课程重点和课程难点:
- 重点:Go语言基础语法,go关键字的使用
- 难点:案例三SOCKS5代理 看一次很难理解,需要回顾吸收。