Go語言--延遲調用defer、獲取命令行參數、局部變量以及全局變量

延遲調用defer

關鍵字 defer 用于延遲一個函數或者方法(或者當前所創建的匿名函數)的執行。注意,defer語句只能出現在函數或方法的內部。
在這里插入圖片描述

defer 語句經常被用于處理成對的操作,如打開、關閉、連接、斷開連接、加鎖、釋放鎖。通過defer 機制,不論函數邏輯多復雜,都能保證在任何執行路徑下,資源被釋放。釋放資源的 defer應該直接跟在請求資源的語句后。

在這里插入圖片描述

多個defer的執行順序

如果一個函數中有多個 defer 語句,它們會以LIFO(后進先出)的順序執行。哪怕函數或某個延遲調用發生錯誤,這些調用依舊會被執行。
在這里插入圖片描述

  • 正常情況下,程序崩潰,下面的程序將不會被執行。
    在這里插入圖片描述
    在這里插入圖片描述

defer和匿名函數結合使用

在這里插入圖片描述

注意,defer已經進行了傳參,只是沒有調用。

defer func(a, b int) {fmt.Printf("a=%d,b=%d\n", a, b)
}(a, b)

相當于,提前已經把a,b的值傳入,只有等到mian函數結束前才進行調用。

defer func(a, b int) {fmt.Printf("a=%d,b=%d\n", a, b)
}(10,20)

在這里插入圖片描述

獲取命令行參數

接收用戶傳遞的參數,都是以字符串方式傳遞。
在這里插入圖片描述

局部變量

  • 定義在{}里畫的變量就是局部變量,只能在{}里面有效。

在這里插入圖片描述
在這里插入圖片描述

  • 執行到定義變量那句話,才開始分配空間,離開作用域自動釋放。

全局變量

定義在函數外部的變量是全局變量,在任何地方都可以使用。

在這里插入圖片描述

  • 不同作用域,允許定義同名變量,使用變量的原則為就近原則。
    在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40991.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NASA——quarius(水瓶座) L3 網格化 1 度年土壤濕度,第 5 版

Aquarius L3 Gridded 1-Degree Annual Soil Moisture V005 水瓶座 L3 網格化 1 度年土壤濕度,第 5 版 簡介 該數據集包含美國國家航空航天局(NASA)科學應用衛星(SAC-D)上的寶瓶座被動微波輻射計得出的第 3 級網格化…

SLAM 精度評估

SLAM 精度的評估有兩個最重要的指標,即絕對軌跡誤差(ATE)和相對位姿誤差(RPE)的 均方根誤差(RMSE): 絕對軌跡誤差:直接計算相機位姿的真實值與 SLAM 系統的估計值之間的差值,首先將…

交換機基本原理

文章目錄 前言一、交換機的轉發行為二、交換機的轉發原理1.MAC地址表2.交換機初始狀態3.學習MAC地址4.ARP協議5.交換機轉發數據幀6.目標主機回復 三、華為交換機基本命令1.VRP視圖分層2.命令行補全3.命令行幫助4.配置設備名稱5.命令等級6.用戶界面7.配置console認證8.配置用戶界…

python-Django項目:圖書后臺管理系統

具體操作:請參考 Django項目:圖書后臺管理系統

基于深度學習的圖像補全

基于深度學習的圖像補全是一項利用深度學習技術來填補圖像中缺失區域的研究領域。這項技術可以有效地恢復損壞或不完整的圖像,使其變得完整和自然,廣泛應用于圖像修復、圖像編輯、視頻恢復和增強現實等領域。以下是關于這一領域的系統介紹: …

運維鍋總詳解計算機緩存

本文從OSI模型中的每一層緩存介紹、常見開源中間件緩存舉例、TCP/IP協議棧中的緩存機制、操作系統中的緩存、訪問緩存數據的時間范圍統計等方面對計算機中的緩存進行詳細介紹。希望對您有所幫助! 一、OSI模型中的每一層緩存 1. 物理層(Physical Layer&…

Unity--異步加載場景

Unity–異步加載場景 異步加載場景其實和異步加載資源是一樣的,只是加載的內容比較特殊而已. 也可以將場景視為特殊資源. 1.SceneManager.LoadScene 加載場景的方式,在Unity 中加載場景是通過SceneManager.LoadScene("場景名稱"); 來實現加載場景,這和UE4中的Open…

如何在Java中實現批量數據處理

如何在Java中實現批量數據處理 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 1. 引言 在大數據時代,處理大量數據是許多應用程序中必不可少的需…

自動化立體倉庫出入庫能力及堆垛機節拍

導語 大家好,我是社長,老K。專注分享智能制造和智能倉儲物流等內容。 新書《智能物流系統構成與技術實踐》人俱樂部 完整版文件和更多學習資料,請球友到知識星球【智能倉儲物流技術研習社】自行下載 自動化立體倉庫的出入庫能力、堆垛機節拍以…

安全協議:SSL/TLS與Java實現

在當今的互聯網環境中,數據安全至關重要。SSL(Secure Sockets Layer)和其繼任者TLS(Transport Layer Security)是確保數據在網絡中安全傳輸的關鍵技術。本文將詳細介紹SSL/TLS協議的工作原理,并通過Java代碼…

掌握電路交換與分組交換:計算機網絡的核心技術

計算機網絡是現代信息社會的基石,而交換技術是實現網絡通信的核心。本文將詳細介紹兩種典型的交換方式:電路交換和分組交換,幫助基礎小白快速掌握這兩種技術的基本概念和區別。 什么是電路交換? 電路交換(Circuit Swi…

Java中的服務化架構設計與實現

Java中的服務化架構設計與實現 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 1. 引言 隨著軟件系統規模的不斷擴大和業務需求的增加,傳統的單體…

CentOS7開啟sshd失敗解決方法

Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys available – exiting. 1、檢查主機密鑰文件是否存在 ls -l /etc/ssh/ssh_host_*2、…

Centos系統遷移

目前,CentOS 全系列版本已經于l六月底正式停止維護,這意味著 CentOS 時代徹底終結,也意味著部署在 CentOS 7 上的業務系統將面臨前所未有的安全挑戰。 本文推薦由紅帽衍生出來的且可以做到真正無縫替代的linux版本Open Euler 注&#xff1a…

【前端】面試八股文——輸入URL到頁面展示的過程

【前端】面試八股文——輸入URL到頁面展示的過程 1. DNS解析 當用戶在瀏覽器中輸入URL并按下回車時,首先需要將域名轉換為IP地址,這個過程稱為DNS(域名系統)解析。具體步驟如下: 瀏覽器緩存:瀏覽器首先檢…

科普文:Linux服務器性能調優概敘

概敘 Java web應用性能分析之服務端慢和優化概敘_cpu飆高java-CSDN博客 Java web應用性能分析之【CPU飆升分析概述】_web頁面性能分析cpu占滿是因為死循環,還是循環過多-CSDN博客 在我們的軟件服務中,軟件部署的服務器,一般都是linux服務器&#xff0c…

ubuntu20.04安裝lio-sam

1、boost版本 boost版本查看:cat /usr/include/boost/version.hpp | grep "BOOST_LIB_VERSION" boost版本為1.78,為1.71時編譯報錯,報錯內容為: error: missing binary operator before token "(" 60 |…

面向txt/json/xlsx/csv的文件讀寫及編碼問題

專欄介紹 1.專欄面向零基礎或基礎較差的機器學習入門的讀者朋友,旨在利用實際代碼案例和通俗化文字說明,使讀者朋友快速上手機器學習及其相關知識體系。 2.專欄內容上包括數據采集、數據讀寫、數據預處理、分類\回歸\聚類算法、可視化等技術。 3.需要強調的是,專欄僅介紹主…

每日一道算法題 彩燈裝飾記錄 I

題目 LCR 149. 彩燈裝飾記錄 I - 力扣(LeetCode) Python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right …