Go基础语法 | 青训营笔记
重点内容 & 详细知识点介绍
Go语言特点
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
Go语言基础语法与C++区别
-
变量声明
- var name = "initial"
- int num = 5
- i := 0
-
没有while, for-each循环
-
if, for, switch的条件判断语句没有圆括号,且模块语句必须用大括号括起来
-
switch-case运行一个case没有break也不会运行其他的case
-
switch-case可以不写最开始用来判断的变量,而在每个case里面写条件判断语句
-
数组定义
var a [5]int数据名为a,Go中数组长度固定,很少用 -
切片:可变长度的数组,相比数组有更丰富的用法
- 切片定义:
s := make([]string, 3) - 切片增加元素:
s = append(s, "d"),必须把append返回值赋值回去 - 切片复制:
copy(c, s) - 切片子范围:
s[2:5]表示[2,5)下标的元素,s[:5]表示[0,5)下标的元素,s[2:]表示从2到最后的元素
- 切片定义:
-
map
- 定义:
m := make(map[string]int),key类型为string,value类型为int - 赋值:
m["one"]=1 - 删除:
delete(m,"one")
- 定义:
-
range:用于遍历
- 数组的遍历:有数组nums,
for i, num := range nums{...},i是下标,num是对应的值 - map的遍历:有map
m,for k, v := range m{...},k是key,v是value
- 数组的遍历:有数组nums,
-
函数
func add(a int, b int) int { //参数和返回值的类型都是后置的 return a+b } func exists(m map[string]string, k string) (v string, ok bool){ v, ok = m[k] return v, ok //v返回对应的值,ok返回是否存在 } -
指针:主要实现对函数外传进来的参数进行修改
-
结构体
type user struct{ name string password string } -
读取用户输入
实践练习例子
- 猜谜游戏:随机数、处理用户输入、输出
- 在线词典:调用网站接口、代码生成、map的使用
- SOCKS5 代理:HTTP编程
课后个人总结
这堂课主要了解了Go的基础语法,个人比较熟悉C++,因为Go的语法和C++是很像的,但是在一些细节上有区别,这些区别都在上面的详细知识点介绍具体列出来了,可以多看两遍以示区别。
其他的内容就主要是三个示例,三个示例的大致涵盖的知识点在上面有所介绍,不再赘述,其中的猜谜游戏和在线词典难度都不大,主要是SOCKS5 代理这个例子有些许难度,因为计算机网络的基础不是很好,后续会对计算机网络的基础知识进行巩固,然后再来消化这个例子。