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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                **定義:** ~~~ func function_name( [parameter list] ) [return_types] { 函數體 } ~~~ **特性:** 1. 無需聲明原型 2. 不定長度變參 3. 多返回值 4. 命名返回值參數 5. 匿名函數 6. 閉包 ## 一、不定參數 ~~~ package main import ( "fmt" ) func main() { test(1, 2, 3, 4, 5) } func test(nums ...int) { fmt.Println(nums) } ~~~ 結果: ~~~ [1 2 3 4 5] ~~~ ## 二、指針參數 ~~~ package main import ( "fmt" ) func main() { num := 3 test(&num) fmt.Println(num) // 4 } func test(num *int) { *num = 4 } ~~~ ## 三、閉包 ~~~ package main import ( "fmt" ) func main() { bar := foo(2) result := bar(3) fmt.Println(result) // 5 } func foo(a int) func(int) int { return func(b int) int { return a + b } } ~~~ ## 四、defer修飾符 * defer的執行方式類似其它語言中的析構函數,在函數執行體結束后按照調用順序的相反順序逐個執行 * 即使函數發生嚴重錯誤也會執行 * 支持匿名函數的調用 * 通常用于資源清理、文件關閉、解鎖以及記錄時間等操作 * 通過與匿名函數配合可在return之后修改函數計算結果 * 如果函數體內某個變量作為defer時匿名函數的參數,則在定義defer時即已經獲得了拷貝,否則則是引用某個變量的地址 * GO沒有異常機制,但有panic/recover模式來處理錯誤 * Panic可以在任何地方引發,但recover只有在defer調用的函數中有效 ~~~ package main import ( "fmt" ) func main() { fmt.Println("A") defer fmt.Println("B") defer fmt.Println("C") } ~~~ 結果: ~~~ A C B ~~~ ## 五、鏈式調用 ``` package main import "fmt" type Integer int func (a Integer) Less(b Integer) bool { return a < b } func main() { var a Integer = 1 if a.Less(2) { fmt.Println("less then 2") } } ```
                  <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>

                              哎呀哎呀视频在线观看