如何将地图值传递给其他文件

文件1


func 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 中的映射中检索键和值。


MMMHUHU
浏览 101回答 1
1回答

郎朗坤

我不完全确定你想做什么,但据我了解,你想确保第二个文件中的函数可以从第一个文件中的函数访问地图,对吗?为简单起见,我将fn1称为文件 1中的函数,并将fn2 称为文件 2中的函数。它们不在不同的文件中这一事实应该不会影响任何东西,只要它们可以相互访问即可。一种替代方法是在父函数(调用fn1和fn2的函数)中声明您的映射,然后将此映射作为两个函数的参数传递。例如:func fn1(sessionMap map[int]int) {&nbsp; &nbsp; for i := 1; i < 10000; i++ {&nbsp; &nbsp; &nbsp; &nbsp; // do some work here&nbsp; &nbsp; &nbsp; &nbsp; sessionMap[i] = i&nbsp; &nbsp; }}func fn2(sessionMap map[int]int) {&nbsp; &nbsp; for i := 1; i < 10000; i++ {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(sessionMap[i])&nbsp; &nbsp; }}func main() {&nbsp; &nbsp; sessionMap := make(map[int]int)&nbsp; &nbsp; fn1(sessionMap)&nbsp; &nbsp; fn2(sessionMap)}但是,如果fn2被fn1调用,您可以在fn1中声明映射并将其传递给fn2,如下所示:func fn1() {&nbsp; &nbsp; sessionMap := make(map[int]int)&nbsp; &nbsp; for i := 1; i < 10000; i++ {&nbsp; &nbsp; &nbsp; &nbsp; // do some work here&nbsp; &nbsp; &nbsp; &nbsp; sessionMap[i] = i&nbsp; &nbsp; }&nbsp; &nbsp; fn2(sessionMap)}func fn2(sessionMap map[int]int) {&nbsp; &nbsp; for i := 1; i < 10000; i++ {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(sessionMap[i])&nbsp; &nbsp; }}func main() {&nbsp; &nbsp; fn1()}fn1和fn2可以存在于单独的或相同的文件中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go