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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 函數值 函數值就是閉包 ~~~ func squares() func() int { var x int return func() int { x++ return x * x } } func main() { f := squares() fmt.Println(f()) // "1" fmt.Println(f()) // "4" fmt.Println(f()) // "9" fmt.Println(f()) // "16" } ~~~ 函數值不僅僅是一串代碼,還記錄了狀態。在squares中定義的匿名內部函數可以訪問和更新squares中的局部變量,這意味著匿名函數和squares中,存在變量引用。這就是函數值屬于引用類型和函數值不可比較的原因。Go使用閉包(closures)技術實現函數值,Go程序員也把函數值叫做閉包。 通過這個例子,我們看到變量的生命周期不由它的作用域決定:squares返回后,變量x仍然隱式的存在于f中。 ## 警告:捕獲迭代變量 具體看go語言圣經的這一塊,匿名函數對上層的局部變量,捕獲的是該變量的內存地址,所以,在for每次循環中,for的返回值都是重新賦值,那么匿名變量捕獲的永遠是最后一次. ~~~ for i := 0; i < 10; i++ { n := i fmt.Println("i=====", &i) fmt.Println("n=====", &n) } ~~~ 結果:可以看到i的內存地址永遠是同一個,而n的地址不是同一個. ``` i===== 0x1400001e318 n===== 0x1400001e320 i===== 0x1400001e318 n===== 0x1400001e330 i===== 0x1400001e318 n===== 0x1400001e338 i===== 0x1400001e318 n===== 0x1400001e340 i===== 0x1400001e318 n===== 0x1400001e348 i===== 0x1400001e318 n===== 0x1400001e350 i===== 0x1400001e318 n===== 0x1400001e358 i===== 0x1400001e318 n===== 0x1400001e360 i===== 0x1400001e318 n===== 0x1400001e368 i===== 0x1400001e318 n===== 0x1400001e370 ```
                  <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>

                              哎呀哎呀视频在线观看