这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天。 主要学习了掘金go语言课程的第1,2节课,耗时1.5h。第一节课主要讲述go语言的优势,常见的语言,第二节课则是动手实现了一些go语言项目。
课程一
1.1 Go语言的优势:
- 高性能、高并发
- 快速编译
- 跨平台
- 有垃圾回收机制
1.2 Go基础语法:
1.2.1 框架结构:
1.2.2 编译方式:
1.2.3 变量:
两种申明变量的方式:
- var ,自动推导类型
- :=,使用变量:=赋予值 const申明常量
1.2.4 if-else,for循环,switch:
与其他语言不同是不需要在语法后面加上(),直接写就行。
1.2.5 数组,切片和map:
数组:因为受到长度限制,一般选用切片
var a [5]int
a[4] = 100
fmt.Println("get:", a[2])
fmt.Println("len:", len(a))
b := [5]int{1, 2, 3, 4, 5}
fmt.Println(b)
var twoD [2][3]int
for i := 0; i < 2; i++ {
for j := 0; j < 3; j++ {
twoD[i][j] = i + j
}
}
fmt.Println("2d: ", twoD)
切片:可以任意更改长度。比如用make来创建一个切片
c := make([]string, len(s))
copy(c, s)
fmt.Println(c) // [a b c d e f]
fmt.Println(s[2:5]) // [c d e]
fmt.Println(s[:5]) // [a b c d e]
fmt.Println(s[2:]) // [c d e f]
map:golang的哈希map完全无序
1.2.6 进程信息:
在go里面,我们可以用os.argv得到程序执行时指定的命令行参数。
课程二
猜数字游戏
这个题目基本就是熟悉语法了,需要注意的是需要加入随机种子,否则取的随机数是固定的。
在线字典
这个题目就是一个普通的爬虫,然后处理json数据,有两个网站很不错
Socks5
暂时没弄懂,有tcp网络请求这些。
总结
学习新语言,课程进度不错,语法啥的一节课带过了,后面自己手敲都能学会。第三个题目网络请求感觉和后面的RPC项目有关,明天弄懂这个题。