GO语言学习笔记2(指针数组MAP)
来源:互联网 发布:罗曼电动牙刷知乎 编辑:程序博客网 时间:2024/05/22 08:21
指针声明
var p *int
或者
i := 2
p = &i
*p 表示取内容
但是对于数组/结构,可以直接通过p[1]/p.X来访问
结构的定义有点类似与C
type Vertex struct {
X int
Y int
}
初始化可以使用
v := Vertex{1, 2}
v.X = 4
其他几种定义方式
var (
v1 = Vertex{1, 2} // has type Vertex
v2 = Vertex{X: 1} // Y:0 is implicit
v3 = Vertex{} // X:0 and Y:0
p = &Vertex{1, 2} // has type *Vertex
)
数组的定义
var a [10]int
Slices是一个类似与数组的东西,它以一个数组为基础加上了长度信息。这里有详细的介绍http://blog.csdn.net/wuwenxiang91322/article/details/9072449
var a [10]int
s := a[1:5]
此时slice的长度为4,容量为10
同时s的初始化既可以s := []int{2, 3, 5, 7, 11, 13} 也可以 s := [12]int{2, 3, 5, 7, 11, 13} 二者只是cap(s)不同,len(s)相同
s可以进行切片,比如s[1:2]
同时s也可以使用make:
s := make([]int, 0, 5) 其中len = 0, cap = 5
slice也可以使用append添加元素
a = append(a, 2, 3, 4)
但是添加涉及到len 和 cap的不同增加,还需后续研究
元素历遍
var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
func main() {
for i, v := range pow {
fmt.Printf("2**%d = %d\n", i, v)
}
}
i代表index, 从0开始,也可以使用for _, value := range pow{}忽略index
map的声明,初始化和赋值
var m map[string]int
func main() {
m = make(map[string]int)
m["Bell Labs"] = 2
fmt.Println(m["Bell Labs"])
}
也可以一次性声明加初始化
m := map[string]int{
"Bell Labs": 1,
"Google": 2,
}
注意1上面的2后面必须有逗号,而是:=只能用于函数内,外部必须用var
使用delete(m, "Answer")可以删除元素。但是访问m["Answer"] 返回 0, 这是需要使用
elem, ok = m[key]
如果为空则ok==false
func也可以赋给变量
hypot := func(x, y float64) float64 {
return math.Sqrt(x*x + y*y)
}
fmt.Println(hypot(3, 4))
同时go语言支持闭包,可以在函数内定义函数并返回
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
- GO语言学习笔记2(指针数组MAP)
- Go语言学习笔记之数组、数组切片和map
- Go语言学习笔记 --- map
- Go语言学习笔记(2)-变量,指针
- Go语言学习笔记(三)数组 & 切片 & map
- go语言学习---map
- Go语言学习笔记2——数组和Slice
- Go语言学习笔记 --- 数组的使用
- Go学习笔记-Go语言数组array和切片slice
- go语言:数组指针与指针数组
- Go语言学习笔记2
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习笔记 -- array、slice和map
- 【go 指针数组】go语言中的指针数组
- Go语言学习笔记--类型、指针、面向对象
- Go语言学习笔记(五)-其他类型(指针、结构体、、)
- Go语言学习笔记
- Go语言学习笔记
- Coproject - a RIA Caliburn.Micro demo, part 3
- 关于计算机辅助“发明”(CAI)的设想
- Coproject - a RIA Caliburn.Micro demo, part 2
- Coproject - a RIA Caliburn.Micro demo, part 1
- Coproject - a RIA Caliburn.Micro demo, part 0
- GO语言学习笔记2(指针数组MAP)
- 关于计算机辅助“发明”(CAI)的设想
- Java前面基础知识
- 统计与推断
- 生产者与消费者
- 如何才能做到像gephi那样社区划分可视化呢?
- BinaryTreePath
- nodejs之路-[1]npm简易帮助手册-install
- Mac 常用操作