<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之旅 廣告
                # struct 我們可以聲明新的類型,作為其它類型的屬性或字段容器。 如,創建一個自定義類型person代表一個人的實體。這個實體擁有屬性:姓名&年齡。這樣的類型我們稱之為struct。 ~~~ type person struct{ name string age int } ~~~ ~~~ var P person // P 現在就是 person 類型的變量了 P.name = "Astaxie" // 賦值 "Astaxie" 給 P 的 name 屬性 . P.age = 25 // 賦值 "25" 給變量 P 的 age 屬性 fmt.Printf("The person's name is %s", P.name) // 訪問 P 的 name 屬性 . ~~~ 除了上面這種P的聲明使用之外,還有其他兩種聲明使用方式 1、按照順序提供初始化值 ~~~ P := person{"Liuxinming", 28} ~~~ 2、通過field:value的方式初始化,這樣可以任意順序 ~~~ P := person{age:28, name:"Liuxinming"} ~~~ 舉例: ~~~ package main import "fmt" //聲明一個新的類型 type person struct { name string avg int } //比較兩個人的年齡,返回年齡大的那個人,并且返回年齡差 //struct 也是傳值的 func older(p1, p2 person) (person, int) { if p1.avg > p2.avg { //比較p1和p2年齡 return p1, p1.avg - p2.avg } return p2, p2.avg - p1.avg } func main() { var tom person //賦值初始化 tom.name, tom.avg = "Tom", 18 //兩個字段都寫清楚的初始化 bob := person{avg: 25, name: "Bob"} //按照struct定義順序初始化 paul := person{"Paul", 43} tb_Older, tb_diff := older(tom, bob) tp_Older, tp_diff := older(tom, paul) bp_Older, bp_diff := older(bob, paul) fmt.Printf("Of %s and %s, %s is older by %d years\n", tom.name, bob.name, tb_Older.name, tb_diff) fmt.Printf("Of %s and %s, %s is older by %d years\n", tom.name, paul.name, tp_Older.name, tp_diff) fmt.Printf("Of %s and %s, %s is older by %d years\n", bob.name, paul.name, bp_Older.name, bp_diff) } ~~~ 輸出結果如下: ~~~ Of Tom and Bob, Bob is older by 7 years Of Tom and Paul, Paul is older by 25 years Of Bob and Paul, Paul is older by 18 years ~~~ # struct的匿名字段 我們上面介紹了如何定義一個struct,定義的時候是字段名與其類型一一對應,實際上Go支持只提供類型,而不寫字段名的方式,也就是匿名字段,也稱為嵌入字段。 當匿名字段是一個struct的時候,那么這個struct所擁有的全部字段都被隱式地引入了當前定義的這個struct ~~~ // struct2.go package main import ( "fmt" ) type Human struct { name string age int weight int } type Student struct { Human //匿名字段,那么默認struct就包含了Human所有字段 speciality string } func main() { //初始化一個學生 mark := Student{Human{"Mark", 25, 100}, "Computer Science"} //訪問相應的字段 fmt.Println("His name is ", mark.name) fmt.Println("His age is ", mark.age) fmt.Println("His weight is ", mark.weight) fmt.Println("His speciality is ", mark.speciality) //修改對應的信息 mark.speciality = "AI" fmt.Println("Mark changed his speciality") fmt.Println("His speciality is ", mark.speciality) // 修改他的年齡信息 fmt.Println("Mark become old") mark.age = 46 fmt.Println("His age is", mark.age) // 修改他的體重信息 fmt.Println("Mark is not an athlet anymore") mark.weight += 60 fmt.Println("His weight is", mark.weight) } ~~~ 輸出結果: ~~~ His name is Mark His age is 25 His weight is 100 His speciality is Computer Science Mark changed his speciality His speciality is AI Mark become old His age is 46 Mark is not an athlet anymore His weight is 160 ~~~
                  <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>

                              哎呀哎呀视频在线观看