国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

go語言包、變量、init初始化順序

這篇具有很好參考價(jià)值的文章主要介紹了go語言包、變量、init初始化順序。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一個(gè)完整的 go 語言可運(yùn)行程序,通常會包含引用的包、變量、init 函數(shù)以及 main 函數(shù)幾個(gè)部分。

包、變量、常量、init 函數(shù)以及 main 函數(shù)初始化順序如下圖所示:
go語言包、變量、init初始化順序

在一個(gè) go 語言程序中,初始化順序規(guī)則如下:

  1. 引入的包
  2. 當(dāng)前包中的變量、常量
  3. 當(dāng)前包的 init 函數(shù)
  4. main 函數(shù)

初始化順序說明:

  1. 在 go 源程序中,每一個(gè)被 import 的包,按照在源文件中出現(xiàn)順序初始化。
  2. 如果當(dāng)前包有多個(gè) init 函數(shù)在不同的源文件中,則按照源文件名以字典序從小到大排序,小的先被執(zhí)行到。準(zhǔn)確來說,應(yīng)是按提交給編譯器的源文件名順序?yàn)闇?zhǔn),只是在提交編譯器之前,go 命令行工具對源文件名按字典序排序了。
  3. 同一包且同一源文件中的 init 函數(shù),則按其出現(xiàn)在文件中的先后順序依次初始化。
  4. init 函數(shù)只可以由 go runtine 自己調(diào)用,我們在代碼中不可以顯示調(diào)用,也不可以被引用。
  5. 包 A 引入包 B,包 B 又引入包 C,則包的初始化順序?yàn)椋?C -> B -> A。
  6. 引入包,必須避免死循環(huán),如 A 引用 B, B 引用 C,C 引用 A。
  7. 一個(gè)包被其它多個(gè)包引入,如 A -> B ->C 和 H -> I -> C,C 被其它包引用了 2 次,但是注意包 C 只被初始化一次,被依賴的總是先被初始化。
  8. main包總是被最后一個(gè)初始化,因?yàn)樗偸且蕾噭e的包。

參考:編程寶庫Go語言教程文章來源地址http://www.zghlxwxcb.cn/news/detail-413208.html

到了這里,關(guān)于go語言包、變量、init初始化順序的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • go語言數(shù)據(jù)初始化

    數(shù)據(jù)的聲明: 初始化數(shù)組的初始化有多種形式。 [5] int {1,2,3,4,5} 長度為5的數(shù)組,其元素值依次為:1,2,3,4,5。 [5] int {1,2} 長度為 5 的數(shù)組,其元素值依次為:1,2,0,0,0 。 在初始化時(shí)沒有指定初值的元素將會賦值為其元素類型 int 的默認(rèn)值0,string 的默認(rèn)值是 “”。

    2024年02月03日
    瀏覽(27)
  • go mod init 在初始化時(shí)出現(xiàn) cannot determine module path for source directory (outside GOPATH,module path)

    新創(chuàng)建的golang項(xiàng)目,使用 go mod init 命令時(shí)出現(xiàn) cannot determine module path for source directory xxxxxxx (outside GOPATH, module path must be specified) 這是因?yàn)間o mod init 初始化項(xiàng)目時(shí),需要定義一個(gè) module ,當(dāng)打開一個(gè) go.mod 文件,就會發(fā)現(xiàn)第一行就有 因此,在執(zhí)行 go mod init 時(shí)需要定義 module,如:

    2024年02月13日
    瀏覽(18)
  • 初始化一個(gè)Gin框架的Go-Web項(xiàng)目

    使用到的第三方庫 gin Gin 框架 viper 配置文件管理 cors 跨域資源請求配置 gorm ORM 庫 zap 日志記錄 Go 語言程序的入口點(diǎn) main.go 文件 使用 flag 讀取配置文件路徑參數(shù),默認(rèn)當(dāng)前目錄下 使用 viper 讀取 config.ini 配置文件初始化初始數(shù)據(jù) 初始化隨機(jī)數(shù)種子 初始化數(shù)據(jù)庫 聲明啟動(dòng)程序

    2024年02月09日
    瀏覽(26)
  • android系列-init 初始化日志

    1.FirstStageMain 2.InitKernelLogging? 3.KernelLogger? 4.OpenKmsg?

    2024年02月02日
    瀏覽(32)
  • 【C語言趣味教程】(4) 變量:代碼注釋 | 變量的聲明 | 初始化與賦值 | 作用域與生命周期 | 局部變量與全局變量

    【C語言趣味教程】(4) 變量:代碼注釋 | 變量的聲明 | 初始化與賦值 | 作用域與生命周期 | 局部變量與全局變量

    ? ?? 《C語言趣味教程》?? 猛戳訂閱?。?! 0x00 引入:注釋的作用 \\\"程序員最討厭兩種人:一種是不寫注釋的人,一種是讓我寫注釋的人。\\\" 相信大家對注釋早已有所耳聞,對于注釋,C 語言有兩種注釋風(fēng)格,我們下面會逐個(gè)講解。 ? 但在這之前,我們先來了解了解注釋的作

    2024年02月15日
    瀏覽(27)
  • 【C語言趣味教程】(4) 變量:代碼注釋 | 變量的聲明 | 初始化與賦值 | 變量的命名 | 關(guān)鍵字 | 標(biāo)識符 | 變量名的命名規(guī)范

    【C語言趣味教程】(4) 變量:代碼注釋 | 變量的聲明 | 初始化與賦值 | 變量的命名 | 關(guān)鍵字 | 標(biāo)識符 | 變量名的命名規(guī)范

    ? ?? 《C語言趣味教程》?? 猛戳訂閱!??! 0x00 引入:注釋的作用 \\\"程序員最討厭兩種人:一種是不寫注釋的人,一種是讓我寫注釋的人。\\\" 相信大家對注釋早已有所耳聞,對于注釋,C 語言有兩種注釋風(fēng)格,我們下面會逐個(gè)講解。 ? 但在這之前,我們先來了解了解注釋的作

    2024年02月15日
    瀏覽(105)
  • kubeadm init初始化報(bào)錯(cuò)container runtime is not running

    kubeadm init初始化報(bào)錯(cuò)container runtime is not running

    在進(jìn)行k8s部署時(shí),kubeadm初始化出現(xiàn)如下報(bào)錯(cuò) 原因是:安裝docker或者containerd之后,默認(rèn)在/etc/containerd/config.toml禁用了CRI,需要注釋掉disabled_plugins = [“cri”],否則執(zhí)行kubeadm進(jìn)行部署時(shí)會報(bào)錯(cuò) 注釋完成后,重啟containerd,并重新初始化

    2024年02月12日
    瀏覽(23)
  • Java之初始化順序?qū)嵺`

    在創(chuàng)建Java對象時(shí),需要將對象中的成員變量進(jìn)行初始化后,才能調(diào)用對象的構(gòu)造方法創(chuàng)建對象。本文中將會講解初始化時(shí)父類與子類對應(yīng)的順序。 場景1:父類、子類的初始化順序 用例代碼 結(jié)果輸出 結(jié)果分析 先初始化靜態(tài)塊:父類的靜態(tài)塊 - 子類的靜態(tài)塊。 再初始化非靜

    2024年02月11日
    瀏覽(22)
  • react-Native init初始化項(xiàng)目報(bào)錯(cuò)”TypeError: cli.init is not a function“

    在react-native init appDemo 創(chuàng)建項(xiàng)目時(shí),報(bào)錯(cuò)TypeError: cli.init is not a function。 產(chǎn)生這個(gè)問題的原因是:使用這種方式創(chuàng)建工程,react-native版本是0.69 版本上不適用??梢詸z查下自己安裝的React-native的版本。 使用: npx react-native init Demo --version 0.68.2 即可。 解決方法不好用的話,那就

    2024年02月15日
    瀏覽(16)
  • 七、初始化環(huán)境變量

    void env_relocate (void) { if (gd-env_valid == 0) { puts (\\\"*** Warning - bad CRC, using default environmentnn\\\"); show_boot_progress (-60); set_default_env(); } else { env_relocate_spec (); } gd-env_addr = (ulong)(env_ptr-data); } void env_relocate_spec (void) { #if !defined(ENV_IS_EMBEDDED) int ret; ret = readenv(CONFIG_ENV_OFFSET, (u_char *) env_ptr); if

    2023年04月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包