小弟在学习golang开发点小工具,其中有一个场景是需要传递map[string][]string类型的数据,每次的话大概要存5W条数据在map中,并传递给其他函数处理,这样做的话,是否会大量消耗内存呢?但是貌似map无法通过传递指针的方式来传递值?请问各位遇到这种情况有什么好的建议呢?谢谢大家
小弟在学习golang开发点小工具,其中有一个场景是需要传递map[string][]string类型的数据,每次的话大概要存5W条数据在map中,并传递给其他函数处理,这样做的话,是否会大量消耗内存呢?但是貌似map无法通过传递指针的方式来传递值?请问各位遇到这种情况有什么好的建议呢?谢谢大家
还是值传递,只不过传递的“值”是一个1个字长的地址
[https://play.golang.org/p/ozH...]
package main
import (
f "fmt"
)
func alter_map(a map[int]int){
a[1] = 2
f.Printf("%p\n", &a) //!!!!!!!!!!!!!1
f.Printf("%p\n", a)//查看修改【后】的map的内存地址
}
func main() {
a := make(map[int]int, 2)
a[2] =1
f.Printf("%p\n", &a) //!!!!!!!!!!!!!!
f.Printf("%p\n", a) //查看修改【前】的map的内存地址
alter_map(a) //修改map
f.Println(a)
}
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答935 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
类似于map、slice都是引用传递,没有值拷贝一说。