Go 语言基础|青训营笔记

105 阅读2分钟

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

今天学习的内容为GO语言基础语法和三个实战项目,经过一天的学习感觉收获颇丰,下面的笔记是我认为认为这节课里比较重要的内容。

一、基础语法

GO语言的语法与C语言其实相差不大,如果有C/C++的基础的话在GO基础语 法部分上手起来就很方便。下面是我列举的一些GO语言与C/C++的语法部分不同的一些例子或者一些须注意的点:

1、GO的变量命名方式为var+变量名+类型。

2、GO语言的for(GO语言中只有for一种循环方式)、if、else后无需跟小括号。

3、GO语言的sliece类似C++ STL的vector,可动态扩容。

4、GO语言的map与C++ STL的map不同,其底层为哈希表,与unordered_map类似。

5、GO语言的在循环中使用的range类似C++中for循环的“:”操作符,不同的是GO语言会同时返回下标(map中返回key)和循环内容两个参数。

6、GO语言的函数支持返回多个返回值。

二、项目实战

1、猜谜游戏

该项目实现得比较简单,需要注意的是要设置随机数种子。

还有一点是在这个项目中我们使用了缓冲区读写的方式来进行数的读入,其实就相当于

    var guess int
    _, err := fmt.Scanf("%d", &guess)

使用缓冲区读写的方式主要是为项目三做铺垫。

2、在线词典

该项目的实现主要应用了GO语言的结构体对应JSON的解析,大致操作步骤为:翻译网站抓取翻译时的POST包——进行cURL到GO语言的翻译———将返回包的JOSN翻译为GO语言的结构体接收返回条目———将返回条目打印。

cURL到GO语言的翻译网址为:curlconverter.com/go/

JOSN翻译为GO语言结构体的网站为:oktools.net/json2go