11 2019 档案
结构体——内嵌,初始化内嵌结构体,内嵌结构体成员名字冲突
摘要:1、内嵌 结构体可以包含一个或多个匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型也就是字段的名字。匿名字段本身可以是一个结构体类型,即结构体可以包含内嵌结构体。 注意:在一个结构体中对于每一种数据类型只能有一个匿名字段。 1)内嵌的结构体可以直接访问其成员变量 嵌入结 阅读全文
posted @ 2019-11-24 18:23 acgame 阅读(1351) 评论(0) 推荐(0)
结构体——方法和接收器,为任意类型添加方法
摘要:1、方法和接收器 在Go语言中,结构体就像是类的一种简化形式,那么类的方法在哪里呢?在Go语言中有一个概念,它和方法有着同样的名字,并且大体上意思相同,Go 方法是作用在接收器(receiver)上的一个函数,接收器是某种类型的变量,因此方法是一种特殊类型的函数。 接收器类型可以是(几乎)任何类型, 阅读全文
posted @ 2019-11-24 16:21 acgame 阅读(441) 评论(0) 推荐(0)
结构体——定义,实例化,初始化
摘要:1、定义 Go语言可以通过自定义的方式形成新的类型,结构体就是这些类型中的一种复合类型,结构体是由零个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。 结构体成员也可以称为“字段”,这些字段有以下特性: 字段拥有自己的类型和值; 字段名必须唯一; 字段的类型也可以是结构体,甚至是字段所 阅读全文
posted @ 2019-11-24 15:13 acgame 阅读(2881) 评论(0) 推荐(0)
函数,匿名函数,函数类型实现接口,闭包,可变参数,defer,panic,recover
摘要:1、函数 1)声明 函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。 func 函数名(形式参数列表)(返回值列表){ 函数体} 如果一个函数在声明时,包含返回值列表,那么该函数必须以 return 语句结尾,除非函数明显无法运行到结尾处,例如函数在结尾时调用了 panic 异常或 阅读全文
posted @ 2019-11-17 21:23 acgame 阅读(316) 评论(0) 推荐(0)
流程控制——if,循环,for range,switch, goto,break,continue
摘要:1、if 格式: if condition1 { // do something} else if condition2 { // do something else}else { // catch-all or default} else if 分支的数量是没有限制的。关键字 if 和 else 阅读全文
posted @ 2019-11-17 19:26 acgame 阅读(342) 评论(0) 推荐(0)
range关键字,map,sync.Map,list
摘要:1、range关键字 Go语言有个特殊的关键字 range,它可以配合关键字 for 来迭代切片里的元素。注意,range 创建了每个元素的副本,而不是直接返回对该元素的引用。 示例: package main import "fmt" func main() { arr := []int{1,2, 阅读全文
posted @ 2019-11-17 17:34 acgame 阅读(1443) 评论(0) 推荐(0)
数组,切片
摘要:1、数组 数组属于值类型。 1)声明 var 数组变量名 [元素数量]Type 数组变量名:数组声明及使用时的变量名。 元素数量:数组的元素数量,可以是一个表达式,但最终通过编译期计算的结果必须是整型数值,元素数量不能含有到运行时才能确认大小的数值。 Type:可以是任意基本类型,包括数组本身,类型 阅读全文
posted @ 2019-11-17 15:52 acgame 阅读(1037) 评论(0) 推荐(0)
类型转换,指针,变量的生命周期,常量,模拟枚举,类型别名和类型定义
摘要:1、类型转换 在必要以及可行的情况下,一个类型的值可以被转换成另一种类型的值。由于Go语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明: valueOfTypeB = typeB(valueOfTypeA) 类型转换只能在定义正确的情况下转换成功,例如从一个取值范围较小的类型转换到一个取值 阅读全文
posted @ 2019-11-16 23:11 acgame 阅读(370) 评论(0) 推荐(0)
字符串类型及其常用操作
摘要:1、字符串类型 字符串是一种值类型,且值不可变,即创建某个文本后将无法再次修改这个文本的内容,字符串是字节的定长数组。 1)定义字符串 可以使用双引号""来定义字符串,字符串中可以使用转义字符来实现换行、缩进等效果。 一般的比较运算符(==、!=、<、<=、>=、>)是通过在内存中按字节比较来实现字 阅读全文
posted @ 2019-11-16 16:58 acgame 阅读(1742) 评论(0) 推荐(0)
整数类型,浮点类型,复数,bool类型
摘要:1、整数类型 Go语言同时提供了有符号和无符号的整数类型,其中包括 int8、int16、int32 和 int64 四种大小截然不同的有符号整数类型,分别对应 8、16、32、64 bit 大小的有符号整数,与此对应的是 uint8、uint16、uint32 和 uint64 四种无符号整数类型 阅读全文
posted @ 2019-11-16 14:18 acgame 阅读(813) 评论(0) 推荐(0)
声明,初始化,匿名变量,作用域
摘要:1、变量声明 1)标准格式: var 变量名 变量类型 当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等。所有的内存在 Go 中都是经过初始化的。 2)批量格式 var (变量名1 变量类 阅读全文
posted @ 2019-11-13 00:08 acgame 阅读(232) 评论(0) 推荐(0)