这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
今天我学习了Go基础课的前两节,并且初次使用Git拉取了课件中提到的上课所必需的项目加以运行
一、本堂课重点内容:
- 本堂课的知识要点有哪些?
第一节课当中我认为比较重要的,Go语言具有一系列的特点:高性能高并发、标准库丰富、默认静态链接、编译速度快等,这一系列的优点也使得——现在也有很多大厂正在使用Go语言进行软件开发。
此后介绍了Go的基础语法,如:变量赋值、切片、结构体、字符串以及一些常用库。
第二节课当中举了三个实战项目:猜谜游戏、命令行词典、SOCK5代理
二、详细知识点介绍:
- 本堂课介绍了哪些知识点?
第一节课教会了我Go的一系列基础语法
- 变量在Go中特有的用法
a := int(0) //由此可以声明并初始化一个int变量,标识符为a值为0<br>
- for在Go中特有的用法
for key, val := range m{ //由此可以遍历map类型变量m,对其中每个下标与所对应值进行遍历
//在此添加循环语句
}
- 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基础的学习工作。
四、课后个人总结:
- 本章有什么知识点不容易掌握?
本次课程知识点比较详尽,暂时没有难以掌握的知识点 - 什么地方容易与其他内容混淆?
也许数组与切片容易混淆吧,最主要的区别是,数组的长度不可变,切片的长度可变。它们在用法上不一样,主要因为两点:
- 数组与切片的初始化方式不同:
//数组a
a := [4]int{3,5,7,9} //数组显式指定长度
a := [...]{3,5,7,9} //数组隐式指定长度
//切片b
b := make([]int, 4) //切片指定长度
b := []int{3,5,7,9} //切片不指定长度
- 函数传递不同:数组传递的是值,切片传递的是指针
也就是说切片穿进函数里以后也有可能被改变,而数组不会
五、引用参考:
- 我参考了哪些外部博客/笔记/文章?
我参考了掘金内部课中的Go基础课程,也就是此次掘金内部课程:
juejin.cn/course/byte…
另外还参考了Foxtail-Grass Studio的专辑封面,作为此次笔记的封面 - 文章中有什么地方是我参考引用了外部博客/笔记/文章的?
主要是课程的主要知识点总结,采用了一边阅读课件一边记录的方式进行了个人的一些学习总结。