Go语言的指针的一些测试
2017-07-03 16:56
399 查看
参考URL:
http://ilovers.sinaapp.com/drupal/node/33
1). 指针在 c 中是个重要的东西,& 和 * 一个取地址、一个解析地址,这是 c 的用法,go 中貌似也是这样,but !
2). go 中的指针是个“透明”的东西,也就是偶们可以不通过 * 访问,而是直接访问,比如可以不是 (*q).Y = 20 而是 q.Y = 20,有些伤天害理的赶脚!
3). 结构体,结构体指针,结构体指针的指针,结构体指针的指针的指针;
4). 再说明一下:要访问指针 p 指向的结构体中某个元素 x,不需要显式地使用 * 运算,可以直接 p.x ;
http://ilovers.sinaapp.com/drupal/node/33
1). 指针在 c 中是个重要的东西,& 和 * 一个取地址、一个解析地址,这是 c 的用法,go 中貌似也是这样,but !
2). go 中的指针是个“透明”的东西,也就是偶们可以不通过 * 访问,而是直接访问,比如可以不是 (*q).Y = 20 而是 q.Y = 20,有些伤天害理的赶脚!
3). 结构体,结构体指针,结构体指针的指针,结构体指针的指针的指针;
4). 再说明一下:要访问指针 p 指向的结构体中某个元素 x,不需要显式地使用 * 运算,可以直接 p.x ;
package main import ( "fmt" ) type Vertex struct { X, Y int } var ( p = Vertex{1, 2} q = &Vertex{1, 2} r = Vertex{X: 1} s = Vertex{} ) func main() { /* p := Vertex{1, 2} q := &p q.X = 10 (*q).Y = 20 r := &q s := &r (**s).Y = 30 fmt.Println(p, q, r, s, *q, *r, *s, **r, **s, ***s) */ fmt.Println(p, q, r, s) v := new(Vertex) fmt.Println(v) v.X, v.Y = 11, 9 fmt.Println(v) }
相关文章推荐
- 关于void*类型指针的一些测试
- Go语言单元和性能测试的相关文档
- Go语言 传值和传指针性能对比
- Go语言的方法接受者类型用值类型还是指针类型?
- go语言,一些零碎没时间整理
- 容器,迭代器,数组指针,指针的指针 的一些测试
- Go语言指针访问结构体的方法
- Go语言 指针
- Go语言 关于go error处理风格的一些讨论和个人观点(下)
- Go语言中的一些函数
- 模仿Go语言的Benchmark测试框架写了JAVA版的简化测试工具
- go语言测试test
- 对32位系统C指针的一些测试
- Go语言 goroutine一些常用技巧
- go语言测试----切片删除
- 一些软件测试与C语言面试题
- go语言和java+jetty的web hello world 性能测试对比
- Go语言学习笔记--类型、指针、面向对象
- [Go语言]从Docker源码学习Go——指针和Structs
- go语言:巧用beego框架的bee工具进行热编译测试(不用每次都go run xxx.go了~)