Go语言基础语法 | 青训营笔记

88 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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代理 看一次很难理解,需要回顾吸收。