<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] 高階函數應該具備下面至少一個特點: - 將一個或者多個函數作為形參 - 返回一個函數作為其結果 首先明確一點,函數名亦是變量。 ```go func add(n1, n2 int) int { return n1 + n2 } func main() { sum := add(2, 3) fmt.Printf("sum: %v\n", sum) fmt.Printf("add: %v, type: %T\n", add, add) } // 運行結果: // sum: 5 // add: 0x47f620, type: func(int, int) int ``` ## 函數形參 示例: ```go func foo() { fmt.Println("foo函數") } func bar(f func()) { fmt.Printf("f type is: %T\n", f) f() } func main() { bar(foo) } // 運行結果: // f type is: func() // foo函數 ``` bar 函數是高階函數,foo 函數是普通函數。 **簡單應用**:計算foo函數執行時間 ```go func foo() { fmt.Println("foo函數") // 阻塞函數 150 ms time.Sleep(time.Millisecond * 150) } func timer(f func()) { // 獲取函數執行前的時間點(毫米級別) startTime := time.Now().UnixMilli() f() // 獲取函數執行后的時間點(毫米級別) endTime := time.Now().UnixMilli() fmt.Printf("The time it takes to execute %d ms.\n", endTime-startTime) } func main() { timer(foo) } // 運行結果: // foo函數 // The time it takes to execute 153 ms. ``` timer 函數是高階函數,foo 函數是普通函數。 ## 函數返回值 返回函數內部的匿名函數 給 調用者函數使用。 ```go func fooReturn() func() { var inner = func() { fmt.Println("fooReturn anonymous function") } return inner } func main() { // 方式一:先接收返回值,然后再執行 f := fooReturn() f() // 方式二:直接調用返回值 fooReturn()() } ``` fooReturn 函數就是高階函數
                  <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>

                              哎呀哎呀视频在线观看