Open zshuangyan opened 6 years ago
整数 int[8,16,32,64] 无符号整数 uint[8,16,32,64] 浮点数 float[32, 64] 布尔数 bool 字符串 string 常量 const 字节 byte (alias for uint8)
字符串是由byte组成的不可变的序列。 len(s)返回s中包含的字节数,这个字节数并不一定等于字符串中的字符个数(考虑unicode) s[i]返回第i个byte的值,s[i:j]返回从i个byte开始,直到第j个(不包含第j个)byte的新字符串 多个字符串可以通过+连接起来,返回新的字符串
使用双引号包围的字符串,可以使用转译符号来包含特殊字符 使用`...` (backquotes)包围的字符串,不执行转义的操作,可以支持多行字符串
存储同一种类型的一个或者多个元素,且长度不可变 var a [3]int //声明 a[0] //通过索引访问元素
// 打印索引和元素 for i, v := range a { fmt.Printf("%d %d\n", i, v) } // 只打印元素 for _, v := range a { fmt.Printf("%d\n", v) }
存储同一种类型的一个或者多个元素,且长度可变 var a []int //声明
// reverse reverses a slice of ints in place. func reverse(s []int) { for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i], s[j] = s[j], s[i] } }
var runes []rune for _, r := range "Hello, BF" { runes = append(runes, r) } fmt.Printf("%q\n", runes) // "['H' 'e' 'l' 'l' 'o' ',''''B' 'F']"
字典所有的键为同一类型,所有的值也为同一类型,但是键和值不必为同一类型。
字典需要初始化了才能使用,下面这种做法在运行的时候会报错
assignment to entry in nil map /usr/local/go/src/runtime/panic.go:505 (0x42ac68) gopanic: reflectcall(nil, unsafe.Pointer(d.fn), deferArgs(d), uint32(d.siz), uint32(d.siz)) /usr/local/go/src/runtime/hashmap_fast.go:696 (0x40d2f6) mapassign_faststr: panic(plainError("assignment to entry in nil map")) /home/zsy/go/src/github.com/open-falcon/falcon-plus/modules/api/app/controller/graph/god_graph.go:40 (0x8e71da) QueryGodGraph: filters["hostname"] = append(filters["hostname"], filter)
ages := make(map[string]int) // mapping from strings to ints 通过键值对在创建字典的时候给它赋值 ages := map[string]int{ "alice": 31, "charlie": 34, }
遍历字典
for name, age := range ages { fmt.Printf("%s\t%d\n", name, age) }
Struct 结构体 JSON
简单数据结构
整数 int[8,16,32,64] 无符号整数 uint[8,16,32,64] 浮点数 float[32, 64] 布尔数 bool 字符串 string 常量 const 字节 byte (alias for uint8)
字符串
字符串是由byte组成的不可变的序列。 len(s)返回s中包含的字节数,这个字节数并不一定等于字符串中的字符个数(考虑unicode) s[i]返回第i个byte的值,s[i:j]返回从i个byte开始,直到第j个(不包含第j个)byte的新字符串 多个字符串可以通过+连接起来,返回新的字符串
使用双引号包围的字符串,可以使用转译符号来包含特殊字符 使用`...` (backquotes)包围的字符串,不执行转义的操作,可以支持多行字符串
组合数据结构
Array 数组
存储同一种类型的一个或者多个元素,且长度不可变 var a [3]int //声明 a[0] //通过索引访问元素
Slice 切片
存储同一种类型的一个或者多个元素,且长度可变 var a []int //声明
append函数
Map 字典
字典所有的键为同一类型,所有的值也为同一类型,但是键和值不必为同一类型。
字典需要初始化了才能使用,下面这种做法在运行的时候会报错
遍历字典
Struct 结构体
JSON