Go:对象选择器自动解引用是什么?

开发 后端
从一个结构体实例对象中获取字段的值,通常都是使用 . 这个操作符,该操作符叫做 选择器。选择器有一个妙用,可能大多数人都不清楚。

 [[427916]]

从一个结构体实例对象中获取字段的值,通常都是使用 . 这个操作符,该操作符叫做 选择器。

选择器有一个妙用,可能大多数人都不清楚。

当你对象是结构体对象的指针时,你想要获取字段属性时,按照常规理解应该这么做

  1. type Profile struct { 
  2.     Name string 
  3.  
  4. func main() { 
  5.     p1 := &Profile{"iswbm"
  6.   fmt.Println((*p1).Name)  // output: iswbm 

但还有一个更简洁的做法,可以直接省去 * 取值的操作,选择器 . 会直接解引用,示例如下

  1. type Profile struct { 
  2.     Name string 
  3.  
  4. func main() { 
  5.     p1 := &Profile{"iswbm"
  6.     fmt.Println(p1.Name)  // output: iswbm 

也正是这个原因,因此在给你一个方法指定定一个接收者的时候,访问接收者的对象时,不需要像下面这样显示的解引用

  1. type Person struct { 
  2.     name string 
  3.  
  4. func (p *Person) Say() { 
  5.     fmt.Println((*p).name

而可以直接这样写

  1. type Person struct { 
  2.     name string 
  3.  
  4. func (p *Person) Say() { 
  5.     fmt.Println(p.name

是不是很简单?跟着明哥一起来攻克 Go 的各个边边角角的知识吧

 

责任编辑:武晓燕 来源: Go编程时光
相关推荐

2012-04-16 14:32:31

iOS选择器代码

2009-07-07 16:38:36

ServletCont

2011-11-28 13:42:55

Sencha Touc组件选择器

2012-12-27 14:08:39

Android开发颜色选择器

2010-06-25 09:04:43

jQuery选择器

2017-03-20 14:46:07

Android日期时间选择器

2010-09-03 09:30:29

CSS选择器

2009-07-16 11:02:33

Swing文件选择器

2013-03-11 10:30:56

CSSWeb

2010-09-07 11:14:32

CSS属性选择器CSS

2022-05-10 07:49:40

CSS选择器

2023-03-16 10:20:55

CSS选择器

2022-02-18 11:06:12

首席技术官技术人工智能

2010-04-23 16:56:26

OracleSQL调优

2010-09-06 08:52:00

CSS选择器

2010-12-27 16:01:45

jQuery选择器

2010-08-26 12:47:15

CSSclass

2023-01-30 08:42:33

CSS选择器性能

2010-06-30 15:24:49

SQL Server子

2010-07-20 10:11:32

jQuery选择器Sizzle
点赞
收藏

51CTO技术栈公众号