配置了 Ubuntu 相关编程环境,学习 Go 语言基础内容,主要是跟着官方教程走一遍,对比 C++的一些不同点学习。

多了一个 rune 类型,教程里没有仔细介绍,也很少使用,之后再注意。

Go 语言中不同类型的项之间需要显示转换,没有隐式类型转换。

所有的循环都采用 for 来实现,for 的使用与 C++类似,但是 for 后面不需要小括号,一定需要大括号。

可以在 for 循环中定义变量,但作用于只在 for 循环中。

需要注意的是,Go 语言只有后置++,没有前置++。

另外,for 语句中可以有空项,但是分号要写上。

if 语句表达式外不需要小括号,但是一定需要大括号,这点与 for 语句的使用是类似的。

可以在 if 语句中执行一个简单的语句,分号隔开后再加判断语句。

defer 语句会推迟到外层函数执行结束后执行。

defer 语句会压栈,当有多个 defer 语句时,后面的 defer 语句会先执行。

三.slice

当 Println()中打印多个函数的执行结果时,Println()会先顺序调用每个函数,将其结果保存,之后再顺序打印。类似于 C++中的 vector,切片的容量扩展,大部分时候也是采用 2 倍扩展,但是也有稍许的差别,在学习过程中无意发现,查看源码可以看到 append 的实现。就 int 而言,当元素个数小于 20 时,当 slice 的容量不够时,继续 append 会将 cap+1,超过 20 后才会 cap*2。