<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 結構體嵌套 一個結構體中可以嵌套包含另一個結構體或結構體指針 訪問嵌套結構體的成員變量有兩種 - 結構體.嵌套結構體.成員變量 - 結構體.成員變量 (嵌套結構體之間的成員變量名一致,則不可以使用該方法) ```go // Person 是人的結構體 // Person 嵌套 Address 結構體 type Person struct { name string age int8 *Address // 匿名變量。Province Province } // Address 是地址的結構體 type Address struct { Province string City string } // NewPerson 是初始化構造 Person 結構體 func NewPerson(name string, age int8, address *Address) *Person { return &Person{ name: name, age: age, Address: address, } } func main() { p1 := NewPerson("jiaxzeng", 18, &Address{"guangdong", "guangzhou"}) fmt.Printf("p1: %#v\n", p1) fmt.Printf("Province: %#v\n", p1.Address.Province) // 省略寫嵌套的結構體,也是可以獲取到成員變量。 // 查找成員變量順序:先在結構體是否存在,存在則返回。不存在的話。找(所有)嵌套結構體是否存在。存在則返回。不存在則報錯。 // 如果多個嵌套結構有重發的成員變量,則需要指定使用哪個嵌套結構體 fmt.Printf("city: %#v\n", p1.City) } // 運行結果 // p1: &main.Person{name:"jiaxzeng", age:18, Address:(*main.Address)(0xc00006a020)} // Province: "guangdong", city: "guangzhou" ``` ## 結構體繼承 嵌套結構體有的方法。結構體都可以調用到。例如上述代碼添加兩個方法,夢想的方法給 person 結構體,獲獎的方法給 Address 嵌套結構體。 ```go // Person 是人的結構體 // Person 嵌套 Address 結構體 type Person struct { name string age int8 *Address // 匿名變量。Province Province } // Address 是地址的結構體 type Address struct { Province string City string } // NewPerson 是初始化構造 Person 結構體 func NewPerson(name string, age int8, address *Address) *Person { return &Person{ name: name, age: age, Address: address, } } // Dream 是 *Person 結構體的夢想方法 func (p *Person) Dream(d string) { fmt.Printf("%s 的夢想是 %s\n", p.name, d) } // Award 是 *Address 結構體的獲獎方法 func (a *Address) Award() { fmt.Printf("%s獲獎啦!!!\n", a.City) } func main() { p1 := NewPerson("jiaxzeng", 18, &Address{"guangdong", "guangzhou"}) p1.Dream("學好Golang語言") // Person實例化調用夢想的方法(繼承Address結構體) p1.Award() } // 運行結果 // jiaxzeng 的夢想是 學好Golang語言 // guangzhou獲獎啦!!! ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看