<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 匿名字段 一般情況下,定義結構體的時候是字段名與其他類型一一對應,實際上go支持只提供類型,而不寫字段名的 方式,也就是匿名字段,也稱為嵌入字段 .當匿名字段也是一個結構體的時候,那么這個結構體所擁有的全 部字段都被隱式的引入了當前定義的這個結構體 . #### 賦值 **注意 : 賦值的時候要么只寫值,如果有一個字段寫了字段名,那么所有的字段都要寫字段名**. ~~~ type Person struct { name string gender byte age int } type Student struct { Person //只有類型,沒有名字,繼承了Person的成員 id int addr string } func main() { var s1 Student s1.Person.name = "jack" s1.Person.gender = '1' s1.Person.age = 20 s1.id = 1 s1.addr = "杭州" fmt.Println(s1) //自動推導類型 s2 := Student{Person{"米蘭", '0', 22}, 2, "北京"} fmt.Printf("%+v\n", s2) //%+v 顯示更詳細 //指定成員初始化,沒有初始化的為零值 s3 := Student{id: 4, addr: "上海"} fmt.Printf("%+v\n", s3) s4 := Student{Person: Person{name: "mike"}, id: 3} fmt.Printf("%+v", s4) } ~~~ ~~~ {{jack 49 20} 1 杭州} {Person:{name:米蘭 gender:48 age:22} id:2 addr:北京} {Person:{name: gender:0 age:0} id:4 addr:上海} {Person:{name:mike gender:0 age:0} id:3 addr:} ~~~ #### 成員操作 ~~~ s1 := Student{Person{"jack", 1, 20}, 1, "杭州"} fmt.Printf("%+v\n", s1) s1.id = 2 s1.Person.name = "mike" fmt.Printf("%+v\n", s1) s1.Person = Person{"milan",0,18} fmt.Printf("%+v\n", s1) ~~~ #### 同名字段 就近原則,如果能在本作用域找到此成員,就操作此成員,如果找不到,就找繼承的字段. ~~~ s1 := Student{Person{"jack",1,18},1,"milan","杭州"} fmt.Printf("%+v\n",s1) ~~~ ~~~ {Person:{name:jack gender:1 age:18} id:1 name:milan addr:杭州} ~~~ 改為如下: ~~~ type Person struct { name string gender byte age int } type Student struct { Person id int //name string //這里注釋掉了 addr string } func main() { var s1 Student s1.name = "jack" fmt.Printf("%+v", s1) } ~~~ ~~~ {Person:{name:jack gender:0 age:0} id:0 addr:} //直接賦值到了繼承的類型中的name上去了 ~~~ #### 非結構體匿名字段 ~~~ type myString string type Person struct { name string gender byte age int } type Student struct { Person int myString } func main() { s := Student{Person{"jack", 0, 18}, 666, "hello world"} fmt.Printf("%+v\n", s) fmt.Println(s.name, s.age, s.Person, s.int, s.myString) } ~~~ ~~~ {Person:{name:jack gender:0 age:18} int:666 myString:hello world} jack 18 {jack 0 18} 666 hello world ~~~ ### 結構體指針類型匿名字段 ~~~ type myString string type Person struct { name string gender byte age int } type Student struct { *Person int myString } func change(s Student) { s.Person.name = "米蘭" s.int = 1000 } func main() { s := Student{&Person{"jack", 0, 18}, 666, "hello world"} fmt.Printf("%+v\n", s) fmt.Println(s.name, s.age, s.Person, s.int, s.myString) change(s) fmt.Println(s.Person, s.int) //兩種方式 var s2 Student s2.Person = new(Person) //分配空間 s2.Person.name = "milan" fmt.Println(s2) } ~~~ ~~~ {Person:0xc42000a060 int:666 myString:hello world} jack 18 &{jack 0 18} 666 hello world &{米蘭 0 18} 666 {0xc42000a0e0 0 } ~~~
                  <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>

                              哎呀哎呀视频在线观看