lesson1初学go语言|青训营笔记

157 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天,虽然本人有c++基础和python基础,但是go语言零基础,所以今天的入门学习依然碰到不小的麻烦,今天的学习主要分为两个部分。

后端入门_走进Go语言基础语言

我本科阶段主要使用的语言为C++,研究生阶段使用的是python,在学习Go语言基础的时候发现和我了解的这两门语言有相似和不同之处。

go和c++

1.以定义变量为例,c++是类型前置(int a),而go语言是类型后置(var a int),同样地,函数也是类型后置(很不习惯)。

2.赋值除了‘=’还有‘:=’.

3.switch语句和c++不一样,go语言的switch在每一个case后面不需要通过加一个break来防止判断继续往下进行

go和python

1.条件语句if-else和循环语句for后面都和python一样不加括号,但是并没有通过缩进来判断代码块,依然通过‘{}’来区分条件体。

2.go语言的切片和python的切片方式是一样的,左闭右开

后端入门_Go语言的实战案例

猜数字

第一个例子是很简单的,体会: 1.注意随机种子的设定会影响结果,随机种子一样,无论运行多少次,计算机给的数字是一样的(深度学习划分数据集时为了保证实验的公平性,会保证每一次实验随机种子一样)。

2.输入和C++中简单的scanf不一样,课后作业改为fmt.Scanf,代码如下


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

func main() {
	maxNum := 100
	// 结果一样需要加入随机数种子
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)
	// fmt.Println("The secret number is ", secretNumber)

	fmt.Println("Please input your guess")
	for {

		var guess int
		fmt.Scanf("%d\n", &guess)

		fmt.Println("You guess is ", guess)
		if guess > secretNumber {
			fmt.Println("Your guess is bigger than the numer. Please try again")
		} else if guess < secretNumber {
			fmt.Println("Your guess is smaller than the numer. Please try again")
		} else {
			fmt.Println("Correct, you win")
			break
		}

	}

}

注意fmt.Scanf那一行代码我在%d后面加了一个\n如果不加 代码在运行的时候会多一行显示你的guess为0。

链接翻译引擎

链接彩云小译的翻译引擎来做一个简易的词典,学会找到网站的请求url已经链接这个网站,然后学会将复制的json转为go long 的结构体,最后因为时间原因课后作业还未完成。

SOCKS5代理

因为是零基础的原因之前接触的多是深度学习方面的应用所以看的半知不解,决定先进行Go语言圣经的阅读之后再补上。

Day1结语

进度太慢,后面必须加紧学习来跟上同学们的步伐。