亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Can Go 的鏈接器覆蓋初始化的變量

Can Go 的鏈接器覆蓋初始化的變量

Go
滄海一幻覺 2021-08-16 18:30:10
來自ld 的文檔:-X 符號值設置否則未初始化的字符串變量的值。符號名稱應采用 importpath.name 格式,如“go tool nm”打印的符號表中所示。所以這很酷。它允許你做這樣的事情:package mainimport "fmt"var version stringfunc main() {    fmt.Println(version)}編譯: go build -ldflags '-X main.version 42' ...我有兩個關于他的功能的問題。首先,它也適用于已初始化的字符串(例如var version = "bad build"),即使文檔特別指出“否則未初始化的字符串變量”。第二個問題是關于空格的。我的Makefile包含以下幾行:GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)LDFLAGS := '-X main.version "$(GIT_BRANCH) $(GIT_COMMIT)"'該命令的文檔go說:-ldflags 'flag list'所以他們對所有鏈接器標志使用單引號。但是一個包含空格作為標志符號的字符串-X呢?雙引號工作得很好,所以轉義單引號也是如此,我只是不確定我是否可以依靠所有這些來始終如一地工作,因為文檔沒有提到任何一個。澄清第一個問題:Go 對所有變量進行零初始化。文檔說:-X symbol value Set the value of an otherwise uninitialized string variable [...]。這是否意味著:var foo string // only this one?var bar = "bar" // or this one too, maybe
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號