第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在編譯時從其他包擴(kuò)展地圖

在編譯時從其他包擴(kuò)展地圖

Go
臨摹微笑 2023-06-05 17:16:13
我正在嘗試在“編譯時”跨包擴(kuò)展地圖。這可能嗎?我有A一個帶有預(yù)定義地圖的包:package Avar MyMap = map[string]string{"key1": "value", "key2": "value"}我想在“編譯時”期間擴(kuò)展地圖。這將在另一個包中完成。例如像這樣(不是工作代碼 ofc。):package Bimport "A"A.MyMap.Slice1["key3"] = "value" // extend the map during compile time這有可能嗎?
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊

您不能在“編譯”時執(zhí)行此操作。事實(shí)上,package A使用的復(fù)合文字,也將在運(yùn)行時構(gòu)造和使用。沒有復(fù)合文字常量。

更進(jìn)一步,無論您在 package 中編寫什么代碼B,如果它導(dǎo)入 package A, package 的代碼B只會在 packageA初始化后運(yùn)行,包括您發(fā)布的地圖。

如果你想A.MyMap在任何其他包看到它之前有一個不同的值,你應(yīng)該修改包的源A。這可能是生成的附加文件,它可以使用包init()函數(shù),為 分配新值MyMap,或向其添加新值。

如果可以,您還可以修改 packageA以便將 的初始化MyMap移動到另一個可以生成的源文件。


查看完整回答
反對 回復(fù) 2023-06-05
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個贊

您在鏈接時使用命令傳遞一個字符串

go?build?-ldflags?'-X?somemap={"k":"v"}'

然后在運(yùn)行時將其解析為映射。您可以輕松使用 JSON 格式。

查看完整回答
反對 回復(fù) 2023-06-05
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個贊

它實(shí)際上是運(yùn)行時的擴(kuò)展,但它應(yīng)該適合您的示例。

使用初始化函數(shù)。

package B


import "A"


func init() {

? ? A.MyMap["key3"] = "value"

}


查看完整回答
反對 回復(fù) 2023-06-05
  • 3 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號