Go教程结构体嵌套

Posted 玖五二七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go教程结构体嵌套相关的知识,希望对你有一定的参考价值。

之前创建的MyStudent结构体中,address是一个string,我们需要作出一点改变,把Address独立定义一下

type Address struct 
  Street     string
  City       string
  Privance   string
  PostalCode string

这个地址就详细多了,我们把之前的地址都换成这个样子,直接把这个结构体嵌入进原来的结构就行了

type MyStduentN struct 
  Name        string
  Age         int
  HomeAddress Address


func main()
  var s MyStduentN
  s.HomeAddress.City = "太原"
  s.HomeAddress.Privance = "山西"

  fmt.Println(s.HomeAddress.City)        // 山西
  fmt.Println(s.HomeAddress.Privance)    // 太原


程序会输出MyStudentN中的HomeAddress这个struct

匿名struct字段

这是一个技巧,有助于我们少输出一些总是重复的字母,但是有了提示器以后我觉得没什么必要省略掉了.

type MyStduentA struct 
  Name        string
  Age         int
  Address // 匿名字段

使用匿名字段以后,可以直接输入Address内部的字段,而不用写Address这个struct在前面,相当于

type MyStduentA struct 
  Name        string
  Age         int
  Street     string
  City       string
  Privance   string
  PostalCode string

以下代码

  var sa structure.MyStduentA
  sa.City = "北京"
  fmt.Println(sa.City)

以上的代码会输出北京,Golang允许大家少敲代码

以上是关于Go教程结构体嵌套的主要内容,如果未能解决你的问题,请参考以下文章

Go教程结构体嵌套

Go 系列教程 ——第26篇:结构体取代类

Go语言自学系列 | golang嵌套结构体

go结构体嵌套和用结构体实现模拟“继承”

Go语言学习——结构体的匿名字段嵌套结构体结构体的“继承”

Go语言基础:结构体