Go基础语法 | 青训营笔记

39 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

今天课程主要分为四个方面:
1.Go语言简介
2.Go语言开发入门,包括开发环境配置、基础语法、标准库
3.Go实战,包括三个实战项目:猜数游戏、在线词典和Socks5

学习感悟

  1. Go语言与以往学过的语言的不同点:
  • 变量声明的两种形式:var a = "initial"a := "initial"
  • if用法: if a < b {} 条件没有小括号,语句必须写在大括号里边
  • for用法:条件没有括号
  • switch:case默认有break,switch 也可以不加判断条件,在case中进行判断
  • slice切片:s := make([]string, 3)增加时采用赋值方式:s = append(s, "d")
  • map:可以使用make函数创建新的map,其遍历时完全无序,不会按照字母顺序或者插入顺序遍历
  • range:遍历数组、切片、字符串、map和通道中的元素for i, num := range nums{}
  • 结构体与结构体函数
  1. 实战项目
  • 猜数游戏

一个经典的猜数字游戏,给定一个随机数,让用户猜测这个数并给出相应的反馈,是大于要猜的数还是小于要猜的数,或者是成功猜对数字。

func main() {
   maxNum := 100
   rand.Seed(time.Now().UnixNano())
   secretNumber := rand.Intn(maxNum)
   fmt.Println("The secret number is ", secretNumber)
}

在设定随机数时,rand.Seed(time.Now().UnixNano())是必不可少的,要加上时间戳,否则随机数将一成不变。输入数字时没有采用scanf,而是另一种较为复杂的方法。

  • 在线词典

在这个实战项目中,我遇到的最困难的问题是抓包问题,这是我第一次抓包,遇到了一些阻碍,这个项目通过HTTP爬虫爬取其他在线词典网站的结果并返回。

  • Socks5

这个项目简单的实现了Socks5的握手流程,并给予回答。

总结

这是我第一次接触GO语言,其知识与我之前所学知识有不同之处,这让我在刚开始学习的过程中有些吃力,有些知识应用还没有掌握彻底,但学习之旅刚刚开始,我很期待接下来的学习,一起加油吧!