LiteIDE 开发工具指南 (Go语言开发工具)(4)

常用的数据结构有字符串(strings),数组(arrays)和结构体(structs),以及另一位颇受欢迎的成员map。

字符串是Unicode编码,其值不能修改,而其他方面和你想的差不多。

s="Hello"

可以使用len函数获取字符串的长度,使用索引操作符[0]可以访问字符串中的字符。Go语言中的字符串类型相当简陋,但使用stirng package可以实现类似其他语言字符串的所有功能。

数组(arrays)以中括号([])声明,索引从零开始。例如:

var buff [32]byte
fmt.Println(buff[10])

多维数组通过数组的数组实现,

var buff [32][32]byte
fmt.Println(buff[10][0])

数组(array)不是动态的,不能动态分配大小。但可以使用切片(slice)实现同样的效果。切片包含数组(array)的一部分,可以动态变更大小。

结构体(structs)与其他语言类似,如下:

func main() {

type point struct {
x, y int
}
var p = point{10, 10}
fmt.Println(p.x)
}

上例声明了新的结构体类型,包括两个成员x和y。在main函数中创建并初始化了该结构体类型的实例(instance)。Go语言通常不使用术语“实例(instance)”,而更喜欢使用术语“值(value)”,所以你是创建了该类型的一个值(value)。

结构体定义中可以嵌套结构体作为成员。初始化器(initializer){10,10}是结构体literal(译注:literal可以理解为立即数,见维基)。在结构体literal中也可以使用成员名例如{X:10}。

这是我们首次介绍Go类型,关于这个话题之后还有更多内容。

最后一个数据类型是Map,等价于其他语言中的hash map,关联数组(associative array)或者字典(dictionary)。

给定键的类型以及值的类型就能创建Map。如果从来没有使用过关联数组,那就把它想象成一个数组,数组的值不是通过索引访问,而是通过通用类型的键访问。例如。:

var m = make( map[string]int)
m["mike"] = 10
m["lucy"] = 30
fmt.Println(m["lucy"])

显示结果是30.

make函数是能够基于Type(类型)创建Value(值)(译注:可以理解为实例)的两个函数之一,要详细了解它,我们需要学习更多关于类型的内容。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/fc20054b36664376d47aace3fd388faa.html