摘要: 延迟执行defer: 当某些语句需要函数结束时才使用时,可以使用defer语句 最常用的就是在打开os.Open后加入Close()时用defer避免程序结束未关闭文件 defer 语句 运行结果: test 0 1 2 2 1 0 defer 语句会将函数推迟到外层函数返回之后执行。 推迟调用的函 阅读全文
posted @ 2019-07-02 00:12 VingB2by 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 类型别名与类型定义: type 类型别名 = 类型名 TypeAlias 只是 int 的别名,本质上 TypeAlias 与 int 是同一个类型 type 新类型名 类型 NewInt 则是一个新的类型,虽然他的实例化可以被赋值int,但是不再是int 方法: Go 没有类。不过你可以为结构体类 阅读全文
posted @ 2019-07-02 00:10 VingB2by 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 匿名函数: 匿名函数类似于函数声明,但是没有函数名 func (函数参数列表) (函数返回值列表){ 函数内部代码 } 在函数声明后可以加入参数直接调用 运行结果 24 114 闭包: 闭包是由函数及其相关引用环境组合而成的实体(即:闭包=函数+引用环境) 简单的看就是匿名函数作为返回值 拿个网上的 阅读全文
posted @ 2019-07-02 00:08 VingB2by 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 链表内部的实现原理是双链表,可以高效地进行任意位置的元素插入和删除操作 类似的还有堆heap和环列表ring,声明和初始化的方式是相同的,只是原理以及操作的函数不同,当理解了原理操作也是很简单的。 声明与初始化: list 的初始化有两种方法:New 和声明。两种方法的初始化效果都是一致的。 变量名 阅读全文
posted @ 2019-06-25 23:20 VingB2by 阅读(118) 评论(0) 推荐(0) 编辑
摘要: map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。 声明: var 映射名称 map[键类型]值类型 key 可以是任意可以用 == 或者 != 操作符比较的类型,比如 string、in 阅读全文
posted @ 2019-06-25 23:18 VingB2by 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型。 切片的内部结构包含开始位置地址(&)、大小(len)和容量(cap)。 切片并不存储任何数据,它只是描述了底层数组中的一段。 更改切片的元素会修改其底层数组中对应的元素。 声明: var 阅读全文
posted @ 2019-06-25 23:16 VingB2by 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成 声明: var 数组名 [数组长度]类型 数组长度在声明后不能改变,因为长度是类型的一部分。 数组的下标是从0开始,到长度len-1为止,长度为3的数组下标对应0,1,2 初始化: var 数组名 [数组长度]类型{初始 阅读全文
posted @ 2019-06-24 19:28 VingB2by 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 结构体: 声明: 例子: 实例化: 运行结果 {3 3} {1 2} {1 0} {0 0} &{1 2} new关键字: 可以使用 new 关键字对类型(包括结构体、整型、浮点数、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体 运行结果 0xc04204e080 &{3 0} 0xc 阅读全文
posted @ 2019-06-23 19:22 VingB2by 阅读(148) 评论(0) 推荐(0) 编辑
摘要: Go中的流程控制语句有:if(else),for,switch if:(判断流程控制) 关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码(跟C不同,Go中的if不需要加括号) 单个判断: 如果要增 阅读全文
posted @ 2019-06-23 19:21 VingB2by 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 类型转换: 表达式:转换类型(转换值) 运行结果: i type=int f type=float64 u type=uint p type=string p value=* 可以发现p的值已经变成42对应的ASCII码 int转换为字符串:strconv.Itoa() string转换为int:s 阅读全文
posted @ 2019-06-23 19:14 VingB2by 阅读(226) 评论(0) 推荐(0) 编辑