摘要:
1. 什么是闭包? 一个函数内引用了外部的局部变量,这种现象,就称之为闭包。 例如下面的这段代码中,adder 函数返回了一个匿名函数,而该匿名函数中引用了 adder 函数中的局部变量 sum ,那这个函数就是一个闭包。 package main import "fmt" func adder() 阅读全文
posted @ 2025-06-05 09:40
Zero&&One
阅读(8)
评论(0)
推荐(0)
摘要:
1. 扩容后预估容量 假设现在有一个长度为 2 的切片,对其进行扩容,增加三个元素 sli := []int{1,2} sli = append(sli, 3, 4, 5) 对于扩容后的切片,长度为 5,这一点没有任何争议。 但容量呢?难道也是 5? 经过运行验证,实际的容量为 6 。 什么情况?这 阅读全文
posted @ 2025-06-05 09:17
Zero&&One
阅读(3)
评论(0)
推荐(0)
摘要:
切片是一个引用类型,将它作为参数传入函数后,你在函数里对数据作变更是会实时反映到实参切片的。 func foo(s []int) { s[0] = 666 } func main() { slice := []int{1,2} fmt.Println(slice) // [1 2] foo(slic 阅读全文
posted @ 2025-06-05 09:02
Zero&&One
阅读(2)
评论(0)
推荐(0)
摘要:
Go里面的数组是值类型,切片是引用类型。 值类型的对象在做为实参传给函数时,形参是实参的另外拷贝的一份数据,对形参的修改不会影响函数外实参的值。 因此在如下例子中两次打印的指针地址是不一样的 package main import "fmt" func arrayTest (x [2]int) { 阅读全文
posted @ 2025-06-05 08:47
Zero&&One
阅读(2)
评论(0)
推荐(0)