摘要: Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。数组定义:var 数组变量名 [元素数量]T var a1 [3]int //定义一个长度为3且存放int类型的数组 var a2 [2]string //定义一个长 阅读全文
posted @ 2020-03-31 19:52 溶洞 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型(直接引用的内存地址),它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。切片是引用类型,不支持直接比较,只能和nil比较! 得到切片的三种方式: 阅读全文
posted @ 2020-03-31 18:13 溶洞 阅读(260) 评论(0) 推荐(0) 编辑
摘要: Go语言的测试技术是相对低级的。它依赖一个 go test 测试命令和一组按照约定方式编写的 测试函数,测试命令可以运行这些测试函数。编写相对轻量级的纯测试代码是有效的,而且它很容易延伸到基准测试和示例文档。 go test 编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或 阅读全文
posted @ 2020-03-31 17:58 溶洞 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 模板 一个模板是一个字符串或一个文件,里面包含了一个或多个由双花括号包含的{{action}}对象。大部分的字符串只是按面值打印,但是对于actions部分将触发其它的行为。每个actions都包含了一个用模板语言书写的表达式,一个action虽然简短但是可以输出复杂的打印值,模板语言包含通过选择结 阅读全文
posted @ 2020-03-31 15:21 溶洞 阅读(1252) 评论(0) 推荐(0) 编辑
摘要: defer是Go语言中的延迟执行语句,用来添加函数结束时执行的代码,常用于释放某些已分配的资源、关闭数据库连接、断开socket连接、解锁一个加锁的资源。Go语言机制担保一定会执行defer语句中的代码。其它语言中也有类似的机制,比如Java、C#语言里的finally语句,C++语言里的析构函数( 阅读全文
posted @ 2020-03-31 12:11 溶洞 阅读(200) 评论(0) 推荐(0) 编辑