Go语言学习 十六 映射 2019-05-29 22:31:51 Go 暂无评论 1058 次阅读 映射是一种键-值对类型的内置数据结构。它将键映射到值,其中键是唯一的,即不允许重复,重复则会覆盖之前的值。映射的键类型必须是完整的定义了相等运算符(==和!=)的类型,如整数,浮点数,复数,字符串,指针,结构和数组;如果键是接口类型,则其动态类型必须支持相等比较。因此,键类型不能是函数,映射或切片。失败会触发运行时panic。映射中的元素是无序的。映射的零值为nil,nil映射尚未初始化,不能添加 - 阅读全文 -
Go语言学习 十五 数组和切片 2019-05-28 06:07:36 Go 暂无评论 1241 次阅读 数组是一种重要的数据结构,一旦声明长度就是固定的,实际中,更为灵活的切片可能使用更为广泛。切片底层实现就是使用的数组。 - 阅读全文 -
Go语言学习 十四 基本数据类型 2019-05-26 23:23:03 Go 暂无评论 838 次阅读 类型确定一组值以及特定于这些值的操作和方法。类型可以由类型名称表示(如果有的话),或者使用类型字面量指定,则类型名称由现有类型组成。可以使用类型字面量构造复合类型-数组,结构,指针,函数,接口,切片,映射和信道类型。每个类型T都有一个基础类型:如果T是预先声明的布尔,数字或字符串类型之一,或者是类型字面量,则相应的基础类型是T本身。否则,T的底层类型是T在其类型声明中引用的类型的基础类型。 - 阅读全文 -
Go语言学习 十三 类型转换和类型推导 2019-05-26 22:43:56 Go 暂无评论 1231 次阅读 一 类型转换与C不同的是,Go在不同类型的项之间赋值时需要显式转换。显示转换语法形如T(x),其中T为要转换的目标类型,x是一个可以转换为T的表达式。 - 阅读全文 -
Go语言学习 十二 变量和常量 2019-05-26 22:27:51 Go 暂无评论 1284 次阅读 Go 使用var关键字声明变量;使用关键字const声明常量。变量可以像常量一样初始化。 - 阅读全文 -
Go语言学习 十一 defer语句 2019-05-26 21:10:35 Go 暂无评论 1326 次阅读 Go的defer语句用于延迟调用函数,该语句在执行defer的函数返回之前立即执行,换句话说,defer将函数推迟到外层函数执行完毕但返回之前执行。这在处理那些必须释放资源等的情况下非常有用,无论当前函数执行结果如何。 - 阅读全文 -
Go语言学习 十 函数 2019-05-26 15:44:41 Go 暂无评论 760 次阅读 Go中的函数除了可以声明入参之外,还可以声明结果参数(即返回值)。函数可以没有参数或接受多个参数,并且类型在变量名之后。当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。 - 阅读全文 -
Go语言学习 九 流程控制之switch 2019-05-25 22:17:05 Go 暂无评论 969 次阅读 在Go中,switch语法非常灵活。Go 的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的,不过 Go 只运行选定的 case,而非之后所有的 case。实际上,Go自动提供了每个 case 后面所需的 break 语句。 除非以fallthrough语句结束,否则分支会自动终止。 Go 的另一个重要特点在于 switch 的 case 无需为常量,且取值 - 阅读全文 -
Go语言学习 八 流程控制之for循环 2019-05-25 22:03:46 Go 暂无评论 1447 次阅读 与大多数语言不同,Go中没有do或while循环,只有一个简单通用的for循环;for循环有四种写法,其中只有第一种需要分号: - 阅读全文 -
Go语言学习 七 流程控制之if-else 2019-05-25 21:53:44 Go 暂无评论 862 次阅读 Go中关于流程控制方面主要有if-else,for循环,switch。另外,Go中还多了一种新的控制结构select,这种结构包含一个类型开关和一个多路通信复用器;if和switch接受类似for的可选初始化语句;break,continue和goto语句采用可选标签来标识要中断或继续以及要跳转的内容;与C相比,Go的控制结构语法也有些区别:没有小括号,并且控制体必须包含在一对大括号中。 - 阅读全文 -