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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 結構體 ~~~ type Student struct { id int name string sex byte age int } ~~~ ## 初始化 ~~~ type Student struct { id int name string sex byte //字符類型 age int } func main() { //順序初始化,每個成員必須初始化 var s1 Student = Student{1, "2", 'm', 18} fmt.Println(s1) //指定成員初始化,沒有初始化的成員,自動賦值為0 student := Student{name: "mike", age: 19} fmt.Println(student) } ~~~ ## 結構體指針 ~~~ func main() { var s1 *Student = &Student{1, "2", 'm', 18} fmt.Println("*s1 = ", *s1) //指定成員初始化,沒有初始化的成員,自動賦值為0 student := &Student{name: "mike", age: 19} //打印類型 fmt.Printf("student type %T\n", student) fmt.Println("*student = ", *student) } ~~~ 輸出 ~~~ *s1 = {1 2 109 18} student type *main.Student *student = {0 mike 0 19} ~~~ ~~~ func main() { var s Student var p1 *Student p1 = &s //通過指針操作成員 p1.id和(*p1).id完全等價,只能使用. p1.id = 1 (*p1).name = "mike" p1.age = 11 fmt.Println(*p1) } ~~~ ## new申請空間 ~~~ func main() { p1 := new(Student) p1.id = 1 (*p1).name = "mike" p1.age = 11 fmt.Println(*p1) } ~~~ ## 結構體比較 如果結構體成員都是可比較的,那結構體也是可比較的,可以使用==或!=,但是不支持>或< ## 函數參數 **值傳遞不是引用** ~~~ func test01(s Student) { s.id = 666 fmt.Println("test01: ", s) } func main() { s := Student{1, "mike", 'x', 11} test01(s) fmt.Println("main: ", s) } ~~~ 輸出 ~~~ test01: {666 mike 120 11} main: {1 mike 120 11} ~~~ ## 大小 unsafe.Sizeof ~~~ func main() { var p Power p.age = 11 p.name = "wfwef" fmt.Println(unsafe.Sizeof(p)) } ~~~ ## 內存地址 結構體的變量地址等于首個元素的內存地址 ## nil 空struct這么表示: ~~~ struct{}{} ~~~ 例子: ~~~ package main import "fmt" func main() { s := struct{}{} fmt.Printf("%T,%v,%+v\n", s, s, s) } ~~~ 輸出 ~~~ struct {},{},{} ~~~ 大括號左右可以多個空格,比如這樣也是可以的 ~~~ struct {} {} ~~~
                  <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>

                              哎呀哎呀视频在线观看