Go基础语法学习
for range语法糖
for range
的通用格式如下:
1 |
|
- **
index
**:当前元素的索引(数组、切片、字符串、map 的键)或迭代计数(通道不适用)。 - **
value
**:当前元素的值副本。 - **
collection
**:支持遍历的数据类型,如数组、切片、字符串、map、通道(channel)。
go的接口
就是定义了一堆方法或者功能,如果某个定义的结构体类型实现了所有声明的方法,就称为该接口的一种实现
1 |
|
当一个接口里有其他接口的时候,就类似继承,这个接口也包含了另一个接口的方法
当接口作为函数形参的时候,调用这个函数需要传入这个接口的具体实现
空接口因为没有定义任何方法,所以任何一个类型都是空接口的实现
1 |
|
go的defer
defer就像是一个栈,遵循先进后出的原则
1 |
|
defer的使用场景
资源释放:比如当打开文件,或者网络连接等,可以在打开后直接defer一个close函数,保证函数结束的时候资源也会被释放
和recover,panic执行try,catch功能
defer和return
重点:defer定义的延迟函数的参数在defer定义的时候就已经被确定了
go里的return本质是:定义返回值→执行defer→将结果返回
Go基础语法学习
http://example.com/2023/12/19/Go基础语法学习/