<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之旅 廣告
                ## 結構體 一個結構體就是一個聚合的數據類型,其實每一個成員都可以看做是獨立的變量. 所以可以進行指針操作. ## 結構體零值 結構體類型的零值是每個成員都是零值。通常會將零值作為最合理的默認值。 ## 值類型和指針類型 ### 值類型 ~~~ type User struct { Name string Age int } func main() { u1 := User{ Name: "jack", Age: 10, } u2 := u1 u2.Name = "milan" fmt.Println(u1) fmt.Println(u2) } ~~~ ``` {jack 10} {milan 10} //值發生了改變 ``` ### 指針類型 ~~~ type User struct { Name string Age int } func main() { u1 := &User{ Name: "jack", Age: 10, } u2 := u1 u2.Name = "milan" fmt.Println(u1) fmt.Println(u2) } ~~~ ``` &{milan 10} &{milan 10} //兩個值一起改變了 ``` ## 結構體值類型不能包含自己 一個命名為S的結構體類型將不能再包含S類型的成員:因為一個聚合的值不能包含它自身。(該限制同樣適應于數組。)但是S類型的結構體可以包含`*S`指針類型的成員,這可以讓我們創建遞歸的數據結構,比如鏈表和樹結構等。 ## 字面值 結構體值也可以用結構體字面值表示,結構體字面值可以指定每個成員的值。 ~~~ type Point struct{ X, Y int } p := Point{1, 2} ~~~ 這里有兩種形式的結構體字面值語法,上面的是第一種寫法,要求以結構體成員定義的順序為每個結構體成員指定一個字面值。它要求寫代碼和讀代碼的人要記住結構體的每個成員的類型和順序,不過結構體成員有細微的調整就可能導致上述代碼不能編譯。因此,上述的語法一般只在定義結構體的包內部使用,或者是在較小的結構體中使用,這些結構體的成員排列比較規則,比如image.Point{x, y}或color.RGBA{red, green, blue, alpha}。 其實更常用的是第二種寫法,以成員名字和相應的值來初始化,可以包含部分或全部的成員,如1.4節的Lissajous程序的寫法: ~~~ anim := gif.GIF{LoopCount: nframes} ~~~ ## 結構體比較 如果結構體的全部成員都是可以比較的,那么結構體也是可以比較的(slice,map,func不可比較),那樣的話兩個結構體將可以使用==或!=運算符進行比較。相等比較運算符==將比較兩個結構體的每個成員. ## 匿名成員 匿名成員可以省略中間匿名成員的名稱直接去"."來進行訪問. 但是如果匿名成員首字母是小寫的(非導出),那么在該包內是可以訪問的,但是在包外是不能訪問的.
                  <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>

                              哎呀哎呀视频在线观看