Go语言基础&项目实践 | 青训营笔记

87 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
今天我学习了Go基础课的前两节,并且初次使用Git拉取了课件中提到的上课所必需的项目加以运行

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?
    第一节课当中我认为比较重要的,Go语言具有一系列的特点:高性能高并发、标准库丰富、默认静态链接、编译速度快等,这一系列的优点也使得——现在也有很多大厂正在使用Go语言进行软件开发。
    此后介绍了Go的基础语法,如:变量赋值、切片、结构体、字符串以及一些常用库。
    第二节课当中举了三个实战项目:猜谜游戏、命令行词典、SOCK5代理

二、详细知识点介绍:

  • 本堂课介绍了哪些知识点?
    第一节课教会了我Go的一系列基础语法
  1. 变量在Go中特有的用法
a := int(0)  //由此可以声明并初始化一个int变量,标识符为a值为0<br>
  1. for在Go中特有的用法
for key, val := range m{  //由此可以遍历map类型变量m,对其中每个下标与所对应值进行遍历
    //在此添加循环语句
}
  1. Go特有的切片
//法一:允许append追加空切片
var s []int
s = append(s,2,3,4)  //此时int[]切片里有三个元素:2,3,4

//法二:变量赋值初始化
s2 := make(int[], 5, 7)  //此时int[]切片长度为5,容量为7

第二节课提出了三个题目及其解决方法(猜谜游戏、命令行词典、SOCK5代理)
但是这部分具体的实现在课程中已经有实际的思路,这里就不多赘述了

猜谜游戏主要是生成一个随机数,然后构建循环进行比较,返回比对结果即可
命令行词典主要是调用百度词典API的接口进行调试即可

三、实践练习例子:

  • 有什么实践举例帮助理解知识点?
    这里需要感谢青训营团队课前学习资料中提供的示例项目,极大的方便了我的学习,如果有后来人也可以就此拉取Git项目:github.com/wangkechun/…
    另附远程库克隆项目的教程:www.liaoxuefeng.com/wiki/896043…
    以此进行实践可以方便Go基础的学习工作。

四、课后个人总结:

  • 本章有什么知识点不容易掌握?
    本次课程知识点比较详尽,暂时没有难以掌握的知识点
  • 什么地方容易与其他内容混淆?
    也许数组与切片容易混淆吧,最主要的区别是,数组的长度不可变,切片的长度可变。它们在用法上不一样,主要因为两点:
  1. 数组与切片的初始化方式不同:
//数组a
a := [4]int{3,5,7,9}  //数组显式指定长度
a := [...]{3,5,7,9}   //数组隐式指定长度

//切片b
b := make([]int, 4)   //切片指定长度
b := []int{3,5,7,9}   //切片不指定长度
  1. 函数传递不同:数组传递的是值,切片传递的是指针
    也就是说切片穿进函数里以后也有可能被改变,而数组不会

五、引用参考:

  • 我参考了哪些外部博客/笔记/文章?
    我参考了掘金内部课中的Go基础课程,也就是此次掘金内部课程:
    juejin.cn/course/byte…
    另外还参考了Foxtail-Grass Studio的专辑封面,作为此次笔记的封面
  • 文章中有什么地方是我参考引用了外部博客/笔记/文章的?
    主要是课程的主要知识点总结,采用了一边阅读课件一边记录的方式进行了个人的一些学习总结。