这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
语言优势
极简单的部署方式
- 可直接编译成机器码,编译速度快
- 不依赖其他库
- 直接运行即可部署
静态类型语言
编译的时候检查出来隐藏的大多数问题
强大的标准库
- runtime系统调度机制
- 高效的GC垃圾回收
- 丰富的标准库
基础语法
局部变量的声明
//方法一:
var a int
//方法二:
var a int = 100
//方法三:
var c = 100
//方法四:
e := 100
全局变量的声明
多变量的声明
//单行写法:
var xx, yy int = 100, 200
//多行写法:
var(
vv int = 100
ii bool = true
)
import导包
import_ 'fmt' //给fmt包起一个别名,匿名,无口法使用当前包的方法,但是会执口行当前的包内部的init()方法
import aa "fmt" //给fmt包起一个别名,aa,aa.Println()来直接调用。
import ."fmt" // 将当前fmt包中的全部方法,导入到当前本包的作用中
//fmt包E的全部的方法可以直接使用API来调用,不需要fmt.API来调用
defer函数压栈出栈
defer函数的调用与栈结构类似,先进后出,即先调用的defer函数会先进入栈,后调用的会先出栈进行调用。
函数声明周期结束才出栈,在return之后才调用
数组定义
数组遍历
for循环下标进行
使用range函数
注意: 数组传递函数是值传递的过程,动态数组引用传递
切片声明
声明切片,但没有分配空间
第二种方式
第三种方式
判断是否为空
声明方式总结
切片动态追加
追加扩容
len和cap
再初始化的时候
如果没有设置cap,则cap的值默认为len
扩容机制
切片深拷贝