初识Go与Go小程序实战|青训营笔记

122 阅读3分钟

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

一、本堂课重点内容:

  • 了解了Go语言的特点和优势
  • 学习了Go语言的基础语法,包括:流程控制语句,容器,错误处理,字符串格式化等。
  • 练习了Go的实战项目。

二、详细知识点介绍:

  1. Go语言的特点:Go语言是为处理高并发而生的语言,在时代进步的同时,对于服务器高并发的要求更高了,Go能够实现高并发。除此之外,Go语言上手简单,语法上与C有较多类似之处,相对于Java来说,有更多实用的标准库,不需要过多使用第三方库。Go语言的编译速度快,且支持跨平台,而且还拥有自己的垃圾回收机制。
  2. Go语言定义变量:Go语言的变量类型和其他语言一样,有整型、浮点型、字符串和布尔型。但Go语言定义变量的方式和其他语言比不大相同。在Go语言中,定义变量有两种形式:(1)利用var自动推断,但可以在变量后面加上类型,来显式写出变量类型。(2)利用冒号的方式来声明变量。变量:=值的方式来赋值
  3. Go语言的流程控制语句和C语言类似,这里就不过多赘述了
  4. Go语言的容器:包括数组、切片和map,切片与C++中的vector类似,大致可以看成可变数组。在容器里,需要注意的是map,在map里面可以使用一个变量ok去检测map中是否含有对应的key,这是与其他语言的容器有区别的地方
  5. Go语言的结构体:在Go语言中可以使用,type NAME struct{}来定义一个结构体变量。除此之外,还需要注意在声明结构体的方法(类似于类中的方法)时与其他语言有差别,需要把对应结构体的变量放在func后面,来表明这是对应结构体的方法:
    func (Object object) functionName(Args[])。
  6. Go语言错误处理:在Go语言中,错误处理不像Java中的错误处理,直接在方法旁边丢出对应的异常,在Go中,对于可能出现异常的函数,应该在形参中声明error类型的参数,如果出现错误,需要返回nil和对应错误,如果没有出现错误,则需要返回nil和原本的结果就行了。
  7. Go语言中处理JSON,在Go语言中处理JSON,需要把结构体中的变量名称首字母大写,如果想使用自己定义的变量名称,而不想遵守规定,需要在变量后面使用json:变量名称。通过json.Marshal()可以实现将一个类对象转化为JSON字符串,通过json.Unmarshal()可以实现将一个JSON字符串转化为结构体类型的变量。

三、实践练习例子:

练习了猜谜游戏,在线词典,以及SOCKS5代理的例子,对于Go语言的基本语法知识,和一些库有所了解。

四、课后个人总结:

  • 本章中在实践阶段知识点有点难以理解,因为以前未接触过有关代理IP的相关知识,除此之外,对于一些函数的作用,还是不太了解,只是大致知道如何使用这些函数。
  • 容易混淆定义变量的方式,毕竟Go语言将类型放在变量名称的后面,还有结构体中方法的定义。