Go语言基础 | 青训营笔记

451 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第1天,本日笔记还待完善。

一、本堂课重点知识

今天主要的学习内容是Go语言基础知识,包括开发环境、基础语法和标准库,以及三个实战案例。

二、详细知识点介绍

1. 开发环境

我选择了VS Code + Go作为我的开发环境。 注意,VS Code需要安装Go插件,以及Go的工具插件。由于资源需要翻墙可能会下载失败,可以在终端执行如下命令:

go env -w GOPROXY="https://goproxy.cn"

代理地址可以根据个人情况更换。 重启VS Code后,快捷键ctrl + shift + p ,输入Go: Install/Update Tools,全选确定等待即可。

2. 基础语法 与 标准库

Go语言的语法与C++的类似。这一部分内容要在之后的学习过程中慢慢熟悉巩固。

三、实践练习例子

1. 猜谜游戏

可以说是语言入门中一个家喻户晓的小例子了,可以涉及到还算不少的基础语法知识。

在课程中给出的代码使用的是bufio对输入进行读取,下面是我使用fmt.Scanf简化后的代码。 但是个人感觉缺少了对输入不为数字时的错误提示。

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	maxNum := 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)

	fmt.Println("please input your guess")
	for {
		var input int
		_, err := fmt.Scanf("%d", &input)
		if err != nil {
			fmt.Println("An error occured while reading input. Please try again", err)
			continue
		}
		fmt.Println("You guess is", input)
		if input > secretNumber {
			fmt.Println("Your guess is bigger than the secret number. Please try again")
		} else if input < secretNumber {
			fmt.Println("Your guess is smaller than the secret number. Please try again")
		} else {
			fmt.Println("Correct, you Legend!")
			break
		}
	}
}

2. 在线词典

3. SOCKS5代理

四、课后个人总结

再次全面的了解了Go语言及其相关的发展背景、基础知识等。

五、引用参考

Golang教程

Go 语言设计与实现