go語言學習之切片、字典、defer語句

  • 切片
    • var sliceName [ ]dataType,創建切片時,不能指定切片的長度
    • slice = array[start : end],左閉右開
    • var slice = make([ ]int,5,10),元素個數爲5,初值爲0,並預留10個元素的存儲空間
    • 切片的增加可以使用 append 函數
    • 切片的複製可以使用 copy 函數
  • 字典
    • var map1 map[ string ] int,這是隻是聲明瞭字典,並沒有初始化,因此此時向 map1 中添加數據項會出現編譯錯誤。
    • 字典的查找 v, ok := mapName[Key],如果存在,則ok是true,否則ok是false,v是0.
    • 字典項刪除 delete(map,“key”)
  • defer語句
    • 使用關鍵字 defer 向函數註冊退出調用,即當主調函數退出時,defer後的函數纔會被調用。defer語句的作用是不管程序是否出現異常,均在函數退出時自動執行相關代碼。
    • 如果程序中有多個defer語句,則按照先進後出的次序執行,即最後一個defer語句最先被執行。
    • defer語句還支持匿名函數調用,如果函數有返回值,被延遲執行的匿名函數還會讀取函數的返回值,並對返回值賦值。
    • 在程序返回或者發生異常時,defer語句通常用來做一些函數調用後的清理工作,釋放資源變量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章