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

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

如何將地圖值傳遞給其他文件

如何將地圖值傳遞給其他文件

Go
MMMHUHU 2023-05-15 14:52:23
文件1func loopFunc() {    m := make(map[int]net.Conn)    for i := 1; i < 10000; i++ {        c, err := l.Accept()        if err != nil {            fmt.Println(err)            return        }        m[i] = c    }    iWantMaps(m)}file2 尚不存在,但可以從地圖中隨機分配一個值作為示例func iWantMaps(m) {    something := m[1]}這是我的項目結構:+/pkg+-->file1+-->file2考慮一個不斷更新 file1 中的映射的 for 循環。我正在嘗試:將整個映射從 file1 傳輸到 file2 中的函數能夠通過 file2 中的函數從 file1 中的映射中檢索鍵和值。
查看完整描述

1 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

我不完全確定你想做什么,但據我了解,你想確保第二個文件中的函數可以從第一個文件中的函數訪問地圖,對嗎?


為簡單起見,我將fn1稱為文件 1中的函數,并將fn2 稱為文件 2中的函數。


它們不在不同的文件中這一事實應該不會影響任何東西,只要它們可以相互訪問即可。一種替代方法是在父函數(調用fn1和fn2的函數)中聲明您的映射,然后將此映射作為兩個函數的參數傳遞。例如:


func fn1(sessionMap map[int]int) {

    for i := 1; i < 10000; i++ {

        // do some work here

        sessionMap[i] = i

    }

}


func fn2(sessionMap map[int]int) {

    for i := 1; i < 10000; i++ {

        fmt.Println(sessionMap[i])

    }

}


func main() {

    sessionMap := make(map[int]int)

    fn1(sessionMap)

    fn2(sessionMap)

}

但是,如果fn2被fn1調用,您可以在fn1中聲明映射并將其傳遞給fn2,如下所示:


func fn1() {

    sessionMap := make(map[int]int)


    for i := 1; i < 10000; i++ {

        // do some work here

        sessionMap[i] = i

    }


    fn2(sessionMap)

}


func fn2(sessionMap map[int]int) {

    for i := 1; i < 10000; i++ {

        fmt.Println(sessionMap[i])

    }

}



func main() {

    fn1()

}

fn1和fn2可以存在于單獨的或相同的文件中。


查看完整回答
反對 回復 2023-05-15
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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