摘要: Go语言实现了可变长度的栈,栈的大小会随着使用而增长,可达到1G左右的上限。这使我们可以安全使用递归而不用担心溢出问题。 阅读全文
posted @ 2018-07-15 19:13 一片湖海 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 如果省略号“...”出现在数组长度的位置上,数组的长度由初始化数组的元素个数决定。 一种写法: 定义一个拥有100个元素的数组,最后一个元素是-1比较:一个数组的元素类型是可比较的,那么这个数组也是可比较的==和!= 阅读全文
posted @ 2018-07-14 15:02 一片湖海 阅读(94) 评论(0) 推荐(0) 编辑
摘要: slice的三个属性:指针,长度,容量append([]Type, Type)copy(dst []Type, src []Type)slice可以实现栈 阅读全文
posted @ 2018-07-14 15:01 一片湖海 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 初始化: 1.按顺序初始化。p := Point{1, 2}2.全部或部分指定成员变量的名称来初始化。p := Point{X:1, Y:2}如果结构体所有的成员变量可以比较,那么这个结构体就是可比较的。匿名成员和结构体嵌套 阅读全文
posted @ 2018-07-14 15:01 一片湖海 阅读(91) 评论(0) 推荐(0) 编辑
摘要: map是一个拥有键值对元素的无序集合。在Go语言中,map是散列表的引用。map[K]V所有的键都有相同的数据类型,同时所有的值也有相同的数据类型。键K,必须是可以通过操作符==来进行比较的数据类型,所以map可以检测某一键是否已经存在。使用make创建map: 使用map的字面量来新建一个带初始化 阅读全文
posted @ 2018-07-14 15:00 一片湖海 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 只有可导出的成员可以转换为JSON字段。 //结构体成员名首字母大写才可以转换JSONtype Movie struct { Title string //字符串 Year int `json:"date"` //原生字符串 对应到date的成员标签 键json控制包encoding/json行为,同理其他包encoding/...}m1 := new(Movie) m1.Title ... 阅读全文
posted @ 2018-07-14 14:58 一片湖海 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 4个标准包对字符串操作非常重要:bytes, strings, strconv和unicode。strings包提供了很多函数,用于搜索、替换、比较、修整、切分和连接字符串bytes包也有类似函数,用于操作[]byte。由于字符串不可变,因此按增量方式构建字符串会导致多次内存分配和复制。这种情况使用 阅读全文
posted @ 2018-07-12 16:17 一片湖海 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 有符号整数:int8 int16 int32 int64无符号整数: uint8 uint16 uint32 uint64无符号整数使用场景: 往往用于位运算符和特定算术运算符int、uint、uintptr:32位或64位,根据硬件平台和编译器而不同rune:常常指Unicode码点。int32同 阅读全文
posted @ 2018-07-12 16:16 一片湖海 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 字符串不可改变,所以字符串内部的数据不允许被修改。不可变意味着两个字符串能安全公用同一段底层内存。例如:s和s[1:],s的子串没有分配新内存。字符串字面量:双引号的字节序列转义符:\n, \', \", \\, \b(退格符)十六进制转义符: \xhh 八进制转义符: \ooo且不能超过\377原 阅读全文
posted @ 2018-07-12 16:16 一片湖海 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 布尔值无法隐式转换成数值 阅读全文
posted @ 2018-07-12 16:15 一片湖海 阅读(105) 评论(0) 推荐(0) 编辑