日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

玩转Go语言之特殊的语法

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 玩转Go语言之特殊的语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

defer 語句

這玩意基本沒啥作用,就是在一個函數中如果某行代碼前面有defer 關鍵字的話,這行代碼就最后執行,如果有多個defer語句的話,遵循后進先出的原則

例如:

fmt.Println("申請存儲空間")defer fmt.Println("釋放存儲空間")fmt.Println("使用存儲空間")fmt.Println("使用存儲空間")fmt.Println("使用存儲空間")復制代碼

簡化代碼作用:

func ReadWrite() bool {file.Open("file")defer file.Closeif failureX {// file.Close()retrun false }if failureY {//file.Close()return false}//file.Closereturn true } 復制代碼

總結:

1.defer語句的格式

defer 語句

2.defer語句的作用

延遲執行, 會在所屬函數執行完畢之后再執行

常用于資源釋放, 解鎖, 錯誤處理等等

以前在C語言中我們說過, 通過malloc申請的存儲空間, 一定更要釋放free

但是由于我們不能寫完malloc之后立即free,所以經常導致我們忘記釋放

malloc -- >申請存儲空間

... ... --> 使用存儲空間

free --> 釋放存儲空間

注意點:

如果在同一個函數中編寫了多個defer語句, 那么會遵守先進后出的原則

先注冊的defer語句后執行, 后注冊的defer語句先執行

init()函數

?1.在Go語言中保留了兩個函數, 一個叫做main,另外一個叫做init

main函數是由系統調用的, init函數也是由系統調用的復制代碼

2.init函數的作用:

對當前文件進行初始化復制代碼

3.調用順序

main包 --> 常量 --> 全局變量 --> init函數 --> main函數 --> 執行邏輯代碼 --> Exit程序復制代碼

4.注意點:

main函數只能在main包中(package main), 并且一個程序只能有一個, 但是init函數每個包中都可以有, 并且可以有多個(但是企業開發推薦只寫一個) 復制代碼


上圖是每個包中初始化的先后順序

import幾種形式

1.點操作

import{

. "fmt"

}

func main {

Println("點操作")

}

2.起別名

import{

f "fmt"

}

func main {

f.Println("起別名")

}

3._操作

只是調用包的init函數,不調用其他函數

import{

_ "test"

}


轉載于:https://juejin.im/post/5ba99c0e6fb9a05cf039e802

總結

以上是生活随笔為你收集整理的玩转Go语言之特殊的语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。