回答

收藏

Go 中映射是按值传递还是按引用传递?

技术问答 技术问答 239 人阅读 | 0 人回复 | 2023-09-12

在 Go 中映射是按值传递还是按引用传递?) m4 N1 I5 x3 O' h2 c
函数总是可以定义如下,但这是否有点矫枉过正?
0 B$ `+ G" E% I
    func foo(dat *map[string]interface{}) {...}4 |/ Z* R6 B9 z. s+ U5 Q
返回值的相同问题。我应该返回指向地图的指针,还是以地图为值?
8 M# ~! m" f  F. s: O" F+ h. g  k当然,目的是避免不必要的数据复制。7 U3 L6 w. _& U/ Y! K
                                                               
, e" P5 b; q3 h* \    解决方案:                                                               
( l! \* G2 A- |/ C' g                                                                您不需要将指针与地图一起使用。
' u- ^  N: Z- |' v8 L映射类型是引用类型,如指针或切片[1]! Y* c2 P* h7 B+ R7 A. U$ P
如需更改会话,可使用指针:5 R$ y8 c6 U6 u4 w% g+ k9 n. [9 R0 D& Y
    map[string]*Session0 E$ C/ O! R" a0 f
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则