摘要: 值类型和引用类型 1.值类型:变量直接存储值,内存通常在栈中分配。 (基本类型,数组,结构体) 2.引用类型:变量存储一个地址,这个地址对应的空间才是真正的存储数据, 通常在堆上分配,当没有任何变量引用这个地址时,就成了垃圾会被GC回收 (slice,map,interface,管道) 阅读全文
posted @ 2020-12-22 10:08 JinweiChang 阅读(105) 评论(0) 推荐(0) 编辑
摘要: defer 在函数执行完后释放资源。 func main() { fmt.Println("add执行完返回了", add(5, 9)) } //1.当执行到defer时,暂时不执行,会将defer后的语句压入单独的栈(defer栈) //2.当函数执行完毕后,再从defer栈中,先入后出取出执行 阅读全文
posted @ 2020-12-22 10:02 JinweiChang 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 数组 数组是值类型,声明时确定长度,不能改变, 里面的元素类型可以是值类型也可以是引用类型,不能混用 func main() { //声明数组长度和类型 var intarr [5]int //赋值 intarr[0] = 3 //常规遍历数组 total := 0 for i := 0; i < 阅读全文
posted @ 2020-12-22 10:00 JinweiChang 阅读(837) 评论(0) 推荐(0) 编辑
摘要: 捕获异常 func main() { test() t3() fmt.Println("我是main") } //函数执行完或遇到异常就会跳到defer栈执行,recover函数捕获异常信息。 //加入错误捕获代码,程序不会奔溃,返回调用处可继续执行 func test() { defer func 阅读全文
posted @ 2020-12-22 09:59 JinweiChang 阅读(518) 评论(0) 推荐(0) 编辑