精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 為什么不支持從 main 包中導入函數?

開發 前端
在本次對 Go 工具限制從 main 包中導入相關函數的緣由,我們做了詳盡的了解和分析。雖然 Go 官方這樣的方式可以一刀切的解決復雜度和安全性的問題。

大家好,我是煎魚。

作為一個維護過許多有一定歷史沉淀的 Go 項目的人,在歷史債務下和奇葩需求下,會遇到一些迫于業務需求的技術訴求。

訴求上是希望引用多項目,會出現從 main 包(package)中導入相關函數的這種使用訴求。為了將多 Go 工程合并到一個大單體中使用。

問題案例

具體的使用案例如下。

我們有一個 Go 應用,目錄結構如下:

demo1
├── go.mod
├── main.go
└── x
    └── main.go

demo1/x/main.go 文件內代碼如下:

package main

import (
 "fmt"
)

func main() {
 Main()
}

func Main() {
 fmt.Println("煎魚進水了?")
}

demo1/main.go 文件內代碼如下:

package main

import (
 "fmt"

 xmain "example.com/greet/x"  // 也就是本應用,上面的 x
)

func main() {
 fmt.Println("腦子進煎魚了!")
 xmain.Main()
}

簡單來講,就是 demo1 這個 Go 項目,擁有兩個 main 包。根目錄下的 main.go 文件內引用了 x/main.go 內的 Main 方法。

運行該程序,看看運行結果:

$ go run main.go
main.go:6:2: import "example.com/greet/x" is a program, not an importable package

會直接報錯,提示 x 包下是一個程序,而不是一個可導入的包。

為什么不支持導入 main 包

這個問題稍微可以收斂一下,關鍵內容是:為什么不支持導入 main 包內的函數?明明 main 包也是一個 package,其個別函數也是大寫開頭,是允許對外導出的。

我首先翻閱了一下 Go 語言規范(spec),確實沒有非常明確禁止該項行為。但又確實在我們日常使用和編譯運行時,會被拒絕運行。提示前面的錯誤。

隨后又查看了具體的代碼提交和 CL,實際上在 13 年前。現任 Go 核心團度負責人 @rsc 是提交過相應 main 包支持的。

如下 CL 所示:

圖片圖片

2011 年(13 年前)的 CL 移除了原本語言規范中定義的 “程序中的其他包都不能命名為 main” 的要求,也就是可以滿足前文問題和背景中提到的使用訴求。

看到這里有的同學就疑惑了。怎么 13 年后的現在,2024 年。又不行了呢?而且感覺是不行好久了。

因為在 2015 年時,現任 Go 核心團隊成員 @ianlancetaylor,又又又改了,增加了非常明確的判斷,直接限制了。

如下代碼變更:

圖片圖片

比較有趣的是,@rsc 和 @ianlancetaylor 的變更都是針對同一個 issues #4210:《cmd/go: go build does not reject importing commands》。

怎么后面又變了呢?@ianlancetaylor 給出的明確答復和定義:

圖片圖片

CL 4126053(原先 @rsc 提交的那次)是對描述語言規范的修改。該語言允許導入名為 main 的包。例如:在為使用 main 包的命令中的函數編寫單元測試時,就可以使用它。

但這里的問題是關于 Go 工具,而不是語言。問題是 go 工具是否應該允許軟件包導入定義命令的包。普遍的共識是不應該。

所提及的 Go 工具,覆蓋的范圍是:cmd/go。包含了 go build 等相關命令。因此是在受限制范圍的。

經過如此切分場景,就能知道為什么語言規范上沒有明確禁止。但 Go 工具上又明確拒絕了。因為其對應覆蓋了不同的使用場景。

不支持的原因,結合討論來看。

普遍認為支持 main 包的導入,會造成更大的復雜度和不安全性。

像是在 main 函數在編寫時,通常會假定自己擁有完全的控制權,因此多個 main 包內的函數引入,可能會造成在 init 函數的初始化順序、全局變量的注冊等,都會產生程序上的沖突。

總結

在本次對 Go 工具限制從 main 包中導入相關函數的緣由,我們做了詳盡的了解和分析。雖然 Go 官方這樣的方式可以一刀切的解決復雜度和安全性的問題。

但有歷史沉淀、債務的情況下,對于需要維護多個 Go 工程項目,要交付不同種類的可組合項目的程序員來說。相當于磨滅了一條道路。還是比較尷尬的。

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2024-03-12 09:13:28

Go語言main

2021-10-27 07:15:36

Go 循環引用

2021-11-08 11:02:01

Go函數重載

2023-02-26 23:36:08

PHPGo函數

2021-12-09 10:51:47

Go繼承

2021-12-15 07:49:22

Go語言設計

2023-01-28 08:05:32

轉換Go泛型

2024-01-05 08:45:35

Go語言map

2024-01-01 08:10:40

Go語言map

2024-05-28 08:55:52

2020-10-09 06:48:19

Pythonswitch語句

2020-07-22 08:01:41

Python開發運算符

2025-10-31 02:30:00

Go系統Protobuf

2021-02-01 13:53:53

StringlongJava

2009-03-12 08:42:38

AndroidWMMTK

2021-08-02 09:31:20

Python工具代碼

2021-06-11 00:03:31

鴻蒙智能手機

2025-06-26 02:22:00

GoProtobuf標簽

2023-04-03 11:21:29

PythonGoRust

2021-07-13 08:09:34

微博推特評論
點贊
收藏

51CTO技術棧公眾號

日本一区高清| 欧美a视频在线观看| 视频一区日韩| 狠狠躁天天躁日日躁欧美| 欧美一区二区视频17c| 国产又粗又猛又爽又黄91| 国产精品www994| 亚洲人线精品午夜| gogo亚洲国模私拍人体| 电影一区二区三| 亚洲精品自拍动漫在线| 免费成人看片网址| www.com欧美| 男女性色大片免费观看一区二区| 欧美国产精品日韩| 蜜桃av免费在线观看| 国产主播性色av福利精品一区| 在线一区二区观看| 可以在线看的av网站| 免费在线午夜视频| 国产午夜精品久久久久久免费视| 国产精品国产三级国产专区53 | 欧美午夜一区| 少妇精69xxtheporn| 特级西西人体wwwww| 日韩成人视屏| 91麻豆精品国产自产在线观看一区 | 欧美综合在线视频| 国产精品丝袜久久久久久消防器材| 国内精品久久久久久野外| 国产亚洲精品福利| 蜜桃免费一区二区三区| 手机看片1024日韩| 国产v日产∨综合v精品视频| 成人高h视频在线| 中文字幕精品无| 国产欧美三级| 欧美一级在线播放| 日本一区二区三区四区五区| 一区免费视频| 欧美国产视频一区二区| 国产免费久久久久| 99国产精品免费视频观看| 国产一区二区三区毛片| 免费观看av网站| 西野翔中文久久精品国产| 亚洲国产精品视频在线观看| 一边摸一边做爽的视频17国产| 一区二区三区在线免费看| 欧美一级片在线看| 日本人dh亚洲人ⅹxx| 国产一区二区在线观| 欧美一区二区日韩一区二区| 一级黄色片在线免费观看| 2020国产精品小视频| 在线不卡免费欧美| aaa一级黄色片| www.久久久.com| 日韩视频不卡中文| 在线免费看黄色片| 精品一区亚洲| 日韩一区二区久久久| 好吊日在线视频| 中文字幕乱码亚洲无线精品一区| 久久国产天堂福利天堂| 免费网站看av| 国产精品一国产精品k频道56| 57pao精品| 波多野结衣激情视频| 蜜桃视频在线一区| 97超碰人人看人人| 天堂av在线资源| 国产日韩欧美精品电影三级在线| 亚洲高清精品中出| 综合图区亚洲| 五月婷婷久久综合| 九九九在线观看视频| 四虎在线精品| 精品国产一区二区精华| 干b视频在线观看| 91精品国产乱码久久久久久| 欧美极品美女电影一区| 久久久久久在线观看| 激情亚洲综合在线| 久久久久高清| 日本美女在线中文版| 一区二区久久久| av动漫免费看| 日韩精品中文字幕一区二区| 亚洲精品一区中文字幕乱码| 国产精品视频看看| 99成人在线| 国产免费久久av| 少妇人妻偷人精品一区二区| 中文字幕中文字幕在线一区| 精品少妇人欧美激情在线观看| 欧美大胆性生话| 欧美一级免费大片| 国产亚洲精品熟女国产成人| 欧美日韩第一区| 国产国语刺激对白av不卡| 国产白浆在线观看| 国产精品欧美久久久久一区二区 | 天堂av最新在线| 色综合网色综合| 99免费观看视频| 久久精品国产亚洲夜色av网站| 久久男人资源视频| 一级久久久久久久| 久久精品夜色噜噜亚洲a∨| 超碰97在线看| 成人网ww555视频免费看| 亚洲成人精品久久| 欧美丰满熟妇bbbbbb| 久久综合导航| 国产在线一区二| 18+视频在线观看| 欧美三区在线观看| 亚洲最大成人网站| 国产亚洲一级| 国产精品久久波多野结衣| 男人在线资源站| 欧洲一区在线观看| 97超碰在线免费观看| 亚洲欧洲视频| 国产成人精品一区二区三区福利| 国产在线看片| 欧美日韩aaaaaa| 欧美午夜激情影院| 日韩精品三区四区| 蜜桃导航-精品导航| 华人av在线| 亚洲成av人片在线观看香蕉| 久久精品视频国产| 成人综合婷婷国产精品久久免费| 成人在线观看毛片| 国产精品毛片无码| 久久精品视频va| 亚洲一区二区影视| 一区在线观看视频| av中文字幕网址| 91久久夜色精品国产按摩| 国产精品小说在线| 网友自拍视频在线| 欧美二区在线观看| 丝袜美腿小色网| 国模一区二区三区白浆| 91嫩草国产丨精品入口麻豆| 九九九九九九精品任你躁 | 成人国产电影在线观看| 亚洲成人精品久久| 成人午夜淫片100集| 91美女片黄在线观看| 99精品免费在线观看| 国产一区二区三区四区五区传媒| 日韩av理论片| 亚洲s色大片| 日韩视频一区二区在线观看| 久草资源在线视频| bt7086福利一区国产| 黄色动漫网站入口| 精品免费av| 成人国内精品久久久久一区| 2024最新电影在线免费观看| 精品1区2区在线观看| 亚洲 欧美 成人| 中文字幕第一页久久| 涩涩网站在线看| 国产综合激情| 欧美日韩高清免费| 国产精品4hu.www| 欧美大尺度激情区在线播放| 高h放荡受浪受bl| 精品久久香蕉国产线看观看gif| 成人性生交大免费看| 国内精品视频一区二区三区八戒| 亚洲 欧美 综合 另类 中字| 一区二区三区韩国免费中文网站| 国产精品99久久久久久久久| 国产激情在线观看| 亚洲精品自拍视频| 国产又粗又猛又爽又黄91| 亚洲电影一级黄| 一级在线观看视频| 国产成人精品1024| 少妇性l交大片| 欧美日韩国产免费观看| 欧美极品jizzhd欧美| www.久久草.com| 日韩av手机在线观看| 黄色网址在线免费| 亚洲欧美色婷婷| www.久久伊人| 欧美性大战久久久久久久蜜臀| 九九精品在线观看视频| 国产欧美一区二区三区沐欲| 欧美熟妇精品一区二区 | 国产农村妇女精品久久| 国产日韩欧美| 日本一道在线观看| 欧美久久综合网| 国产区日韩欧美| 91麻豆精品| 热久久99这里有精品| 三级资源在线| 中文字幕精品网| 四虎国产精品永远| 精品毛片乱码1区2区3区| 伊人亚洲综合网| 欧美午夜无遮挡| 香蕉视频一区二区| 亚洲黄色录像片| 国产精品18在线| 91毛片在线观看| 亚洲中文字幕一区| 国产成人鲁色资源国产91色综| 日本激情综合网| 久久不射2019中文字幕| 免费毛片网站在线观看| 亚洲综合专区| 三年中国中文在线观看免费播放| 欧美日韩有码| 日本成人三级电影网站| 欧美日韩一区二区三区不卡视频| 亚洲最大福利网站| 国产麻豆一区二区三区| 91精品久久久久久久久久久| 久久爱.com| 国产精品一区二区三区毛片淫片| 欧洲av不卡| 欧美一级在线亚洲天堂| www.九色在线| 51精品在线观看| 手机av在线| 欧美一级大片在线观看| 九色porny自拍视频在线观看 | 在线电影欧美日韩一区二区私密| 无码国产精品一区二区色情男同| 精品少妇一区二区三区在线播放| 国产人妻精品一区二区三| 欧美精选一区二区| 国产丝袜在线视频| 日韩欧美国产综合| 亚洲乱码精品久久久久..| 精品国产乱码久久久久久图片 | 中文字幕电影一区| 国产又粗又猛又爽又黄的视频小说| 国产片一区二区三区| 免费黄色在线网址| 一区精品在线播放| 成人免费看片98| 偷窥少妇高潮呻吟av久久免费| 日韩成年人视频| 色爱区综合激月婷婷| 日本黄色中文字幕| 欧美精品在线一区二区三区| av网站在线免费看| 亚洲高清免费观看高清完整版| 色网站免费观看| 亚洲欧美国产精品专区久久| fc2在线中文字幕| 久久色在线播放| 99热99re6国产在线播放| 日本国产精品视频| 欧美91在线|欧美| 亚洲精品欧美日韩专区| 精品国产一区二区三区成人影院| 秋霞久久久久久一区二区| 日韩欧美在线中字| 六月婷婷激情综合| 狂野欧美一区| 在线免费观看av网| 91免费观看视频| 国产三级精品三级观看| 亚洲在线一区二区三区| 日日夜夜操视频| 日韩精品专区在线| 男男激情在线| 久久成人精品电影| 中文字幕在线视频久| 成人激情黄色网| 日韩av资源网| 日本一区二区免费高清视频| 亚洲精品四区| 亚洲人视频在线| 99国产精品视频免费观看| 长河落日免费高清观看| 亚洲第一福利一区| 亚洲熟妇av乱码在线观看| 精品成人免费观看| 午夜免费视频在线国产| 97成人精品视频在线观看| 四虎影视国产精品| 欧美一级二级三级九九九| 亚洲精品久久久| 黄色片在线免费| 成人黄色国产精品网站大全在线免费观看| 日韩不卡av在线| 午夜精品久久久久久久久| 一区二区久久精品66国产精品| 国产视频久久久久| 免费影视亚洲| 成人国产精品久久久| 精品成av人一区二区三区| 日韩人妻无码精品久久久不卡| 麻豆91在线观看| a天堂中文字幕| 婷婷开心激情综合| 亚洲精品第五页| 久久精品中文字幕一区| 日本欧美一区| 欧美日韩在线精品一区二区三区| 欧美午夜一区| 中文字幕乱妇无码av在线| 国产精品麻豆欧美日韩ww| 成人免费看片98欧美| 欧美成人艳星乳罩| 国产精品剧情| 成人情趣片在线观看免费| 波多野结衣的一区二区三区 | 秋霞在线一区二区| 日韩 欧美一区二区三区| 美女脱光内衣内裤| 黄色一区二区三区| 色婷婷综合视频| 欧美激情va永久在线播放| 久久综合给合| 中文字幕中文字幕在线中心一区| 日本一不卡视频| 一区二区三区在线观看免费视频| 日韩欧美在线第一页| 三级毛片在线免费看| 97在线视频精品| 盗摄牛牛av影视一区二区| 国产专区在线视频| 高清不卡在线观看av| 久久伊人成人网| 亚洲精品一区二区三区福利 | 亚洲女同一区| 手机在线免费毛片| 亚洲精品乱码久久久久| www.五月婷| 久久久久久伊人| 欧美丝袜足交| 欧美成人免费高清视频| 国产免费成人在线视频| 做爰无遮挡三级| 日韩中文字幕国产| 91精品视频一区二区| 日韩中文字幕亚洲精品欧美| 国产不卡视频在线观看| 亚洲一区 视频| 日韩国产高清视频在线| 欧美特大特白屁股xxxx| 视频一区二区三区免费观看| 蜜桃视频一区二区| 日韩精品一区二区亚洲av性色| 日韩一区二区在线看| 丰满的护士2在线观看高清| 久久伊人一区| 久久99久久99| 久久网中文字幕| 精品偷拍一区二区三区在线看| 桃花岛tv亚洲品质| 一级全黄肉体裸体全过程| 成人综合在线视频| 中文字幕日韩免费| 久久五月天色综合| 欧美交a欧美精品喷水| 成年网站在线播放| 一区二区三区在线免费播放| 天天射天天色天天干| 国产精品日韩精品| 欧美日韩视频| 91中文字幕永久在线| 欧美日韩国产首页| 91九色在线播放| 先锋在线资源一区二区三区| 国产一区二区在线视频| 五月婷婷亚洲综合| 日韩一区二区三区xxxx| 久久久免费毛片| 一级黄色特级片| 亚洲午夜电影网| 91精品国产91久久久久游泳池 | 国产精品密蕾丝视频下载| 小早川怜子一区二区三区| 午夜精品久久一牛影视| 欧美日本高清| 精品国产一区二区三区麻豆小说 | 在线观看av不卡| 丁香花在线电影| 在线视频亚洲自拍| 久久色中文字幕| 亚洲精品一区二区三区新线路| 国产精品黄页免费高清在线观看| 亚洲精品乱码| 久久免费看少妇高潮v片特黄| 亚洲美女在线看| 国产精品xxxav免费视频|