概述 一个 defer 语句就是一个普通的函数或方法调用。 defer 语句保证了不论是在正常情况下 (return 返回),还是非正常情况下 (发生错误, 程序终止),函数或方法都能够执...
概述 panic 会终止程序并退出,因此只有在发生严重的错误时才会使用 panic。 例子 主动触发 package main func main() { panic("some error...") } // $ go run main...
概述 使用的场景:在函数内部有很多重复性代码并且严重依赖上下文变量。此时可以在函数内部声明一个函数,专门用来处理重复性的代码。 例子 内部求和函数 package main i...
概述 经典语录: 要想理解递归,首先要理解递归。 递归的概念参考 递归 - 维基百科。 例子 阶乘 package main import "fmt" func factorial(n int) int { if n == 0 {...
概述 闭包的概念参考 闭包 - 维基百科。 例子 自增序列号生成器 package main import "fmt" // 自增序列号生成器 func incSeq() func() int { i := 0 return fun...
概述 建议先阅读 指针 小节。 例子 指针变量参数 package main import "fmt" func double(n int) { n *= 2 } func doubleWithPtr(n *int) { *n *= 2 } func main...
概述 在函数的最后一个参数的数据类型之前加上省略号 ... ,表示该参数的数据类型是 变长类型,调用该函数时可以传递任意数量 ( 0 - N ) 的该类型的参数。 一个函数只能...
概述 new() 函数为数据类型 T 分配一块内存,初始化为类型 T 的零值,返回类型为指向数据的指针,可以用于所有数据类型。 make() 函数除了为数据类型 T 分配内存外,还可...
概述 init() 函数 是一个特殊的函数,一般称为初始化函数,不能被调用。 在每个文件里面,当程序启动或者文件被作为包引用的时候,init() 函数就会自动执行,一般用来做...
概述 函数 是将一个或者一类问题包装为一个代码块,可以被多次调用,提高代码重用性。 Go 函数中声明、定义、参数、返回值这些基础概念,和其他编程语言中的一致,这里不...
概述 Map 的遍历是无序的,这意味着不能依赖遍历的键值顺序。如果想实现 Map 遍历时顺序永远一致,一个折中的方案时预先给 Map 的 键 排序,然后根据排序后的键序列遍历...
概述 Map 是一种键值对的无序集合,在其他编程语言中也被称为 字典, Hash, 关联数组。 重要的一点是: Map 键 的数据类型必须是可以比较的,例如 string, int, float64,...
概述 建议先阅读 字符串, 切片 两个小节。 由于字符串不可变,如果每次以 重新赋值 的方式改变字符串,效率会非常低,这时应该使用 []byte 类型,[]byte 元素可以被修改...
概述 阅读本小节之前,建议先阅读 数组 小节。 切片 是对数组的一个连续片段的引用。片段可以是整个数组,也可以是数组的一部分 (例如数组的第 3 个元素到第 8 个元素)。...
概述 数组 是具有相同数据类型的一组长度固定的数据项序列,分配在连续的内存地址上。其中数据类型可以是整型、布尔型等基础数据类型,也可以是自定义数据类型。数组长度...
社交账号:
我要举报该,理由是: