当前位置: 首页 > news >正文

佛山网站建设科技公司天津seo推广软件

佛山网站建设科技公司,天津seo推广软件,a做片手机免费网站,保定小程序开发公司1)结构体可以使用嵌套匿名结构体所有的字段和方法,即:首字母大写或者小写的字段、方法,都可以使用。 type A struct {Name stringage int }func (a *A) SayName() {fmt.Println("A say name", a.Name) }func (a *A) s…

1)结构体可以使用嵌套匿名结构体所有的字段和方法,即:首字母大写或者小写的字段、方法,都可以使用。

type A struct {Name stringage  int
}func (a *A) SayName() {fmt.Println("A say name", a.Name)
}func (a *A) sayAge() {fmt.Println("A say age", a.age)
}type B struct {sex stringA
}func main() {b := &B{sex: "male",A: A{Name: "lucas",age:  29,},}b.SayName()b.A.sayAge()fmt.Println(b.Name)fmt.Println(b.age)
}

2)匿名结构体字段访问可以简化,如图

对上面的代码小结

(1)当我们直接通过b 访问字段或方法时,其执行流程如下,比如b.Name

(2)编译器会先看b对应的类型有没有Name,如果有,则直接调用B类型的Name字段

(3)如果没有就去看B中嵌入的匿名结构体A有没有声明Name字段,如果有就调用,如果没有继续查找..........如果都找不到就报错(如果A里面还有嵌入结构体那么就可以调用)

(4)当结构体和匿名结构体有相同的字段或者方法时,编译器采用就近访问原则访问,如希望访问匿名结构体的字段和方法可以通过匿名结构体名来区分

type A struct {Name stringage  int
}func (a *A) SayName() {fmt.Println("A say name", a.Name)
}func (a *A) sayAge() {fmt.Println("A say age", a.age)
}type B struct {sex  stringName stringA
}func (b *B) SayName() {fmt.Println("B say name", b.Name)
}func main() {b := &B{sex:  "male",Name: "jerry",A: A{Name: "lucas",age:  29,},}b.SayName()fmt.Println(b.Name)
}B say name jerry
jerry

可以看到B在找字段的时候已经找到了自身的字段Name,那么就不会去找A里面的Name字段。

(5)结构体嵌入两个(或多个)匿名结构体,如两个匿名结构体有相同的字段和方法(同时结构体本身没有同名的字段和方法),在访问时,就必须明确指定匿名结构体名字,否则编译报错。

type A struct {Name stringage  int
}func (a *A) SayName() {fmt.Println("A say name", a.Name)
}type B struct {Name stringsex  string
}func (b *B) SayName() {fmt.Println("B say name", b.Name)
}type C struct {AB
}func main() {c := &C{A: A{Name: "lucas",age: 23,},B: B{Name: "jerry",sex: "male",},}c.A.SayName()fmt.Println(c.A.Name)
}

(6)如果一个struct嵌套了一个有名结构体,这种模式就是组合,如果是组合关系,那么在访问组合的结构体的字段或方法时,必须带上结构体的名字

(7)嵌套匿名结构体后,也可以在创建结构体变量(实例)时,直接指定各个匿名结构体字段的值。

  

 

多重继承说明


如一个struct嵌套了多个匿名结构体,那么该结构体可以直接访问嵌套的匿名结构体的字段和方法,从而实现了多重继承。

TV里面既可以使用Goods里面的属性和方法,同时也可以使用Brand里面的属性和方法。 

多重继承细节说明

1)如嵌入的匿名结构体有相同的字段名或者方法名,则在访问时,需要通过匿名结构体类型名来区分。

2)为了保证代码的简洁性,建议大家尽量不使用多重继承

http://www.dinnco.com/news/86526.html

相关文章:

  • linux可以做网站开发吗上海高端网站建设
  • 东莞哪里建设网站好b2b电子商务平台排名
  • 社区推广活动方案seo培训优化课程
  • 2008 iis7添加网站自己怎样推广呢
  • 个人简历电子版在线制作宁波网站seo哪家好
  • 威海网站建设哪家好百度seo优化公司
  • 怎么查网站的所有权最新网络营销方式
  • 大连营销型网站建设湖南搜索引擎推广平台
  • 网站和app可以做充值余额功能广州最新疫情通报
  • 为什么亿唐网不做网站做品牌产品市场推广方案
  • 网站左侧悬浮代码seo教程网
  • 织梦移动网站模板如何优化网站排名
  • 郑州富士康电子厂温州seo招聘
  • 张家港高端网站建设广告推广策划
  • 职业教育培训网站樱桃磁力bt天堂
  • 宠物网站制作费用明细今天合肥刚刚发生的重大新闻
  • 做网站用什么云服务器seo综合检测
  • 世界服装鞋帽网免费做网站营销一体化平台
  • WordPress做头部的插件seo网站排名查询
  • 广州做网站公司哪家好百度app下载官方
  • 衡水购物网站制作seo网络优化日常工作内容
  • 重庆住房和城乡建设部网站的打印准考证seo入门到精通
  • 新建的网站需要维护吗怎么创建一个网页
  • 好设计官网seo实战密码第三版
  • 网站开发面试问题独立站建站需要多少钱
  • 阳泉网站开发企业网络营销推广案例
  • 网站建设怎么样工作韩国热搜榜
  • 邢台做网站推广找谁杭州seo网站建设靠谱
  • 海兴网站建设如何发布自己的广告
  • 南宁做网站 的合肥seo服务商