<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之旅 廣告
                [TOC] >[success] ## **8:函數defer** >[success] ### **8.1:基本介紹** 在函數中,程序員經常需要創建資源(比如:數據庫連接、文件句柄、鎖等),為了在函數執行完畢后,及時的釋放資源,Go的設計者提供defer (延時機制) >[success] ### **8.2:案例演示** ![](https://img.kancloud.cn/06/21/062170d5a088ad13336708c6c39cf415_1062x720.png) >[success] ### **8.3:defer細節** 1)當go執行到一個defer時, 不會立即執行defer后的語句,而是將defer后的語句壓入到一個棧中【我為了方便,暫時稱該棧為defer棧】然后繼續執行函數下一個語句 2)當函數執行完畢后,在從defer棧中,依次從棧頂取出語句執行(注:遵守棧先入后出的機制),所以同學們看到前面案例輸出的順序。 3)在defer 將語句放入到棧時,也會將相關的值拷貝同時入棧。請看一段代碼: 4)在golang編程中的通常做法是,創建資源后,比如(打開了文件,獲取了數據庫的鏈接,或者是鎖資源),可以執行 defer file.Close() defer connect .CloseO 5)在defer后,可以繼續使用創建資源 6)當函數完畢后,系統會依次從defer棧中,取出語句,關閉資源三造, 7)這種機制,非常簡潔,程序員不用再為在什么時機關閉資源而煩心。
                  <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>

                              哎呀哎呀视频在线观看