回答

收藏

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

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

在 Go 中映射是按值传递还是按引用传递?! q* c  i5 q, @3 c7 x/ K3 f
函数总是可以定义如下,但这是否有点矫枉过正?+ N, ?0 X( A  i4 A7 V3 V6 V
    func foo(dat *map[string]interface{}) {...}3 |) E* _5 s. ], g/ `
返回值的相同问题。我应该返回指向地图的指针,还是以地图为值?/ l  d7 G2 h# Q% J+ g; W, s
当然,目的是避免不必要的数据复制。% }# O2 @3 v& Y" V
                                                               
5 T, p, O" S, X/ N- O2 D' x    解决方案:                                                               
; [( c$ ^: v4 ^, U/ }% g7 [* g2 O4 D9 h% Z                                                                您不需要将指针与地图一起使用。
# y5 ^' |- K: ~& |" G: H( s映射类型是引用类型,如指针或切片[1]6 ^  X0 Y! r5 F0 r2 y
如需更改会话,可使用指针:
% F( W. J) W. W3 w1 G' b! k  R
    map[string]*Session
    + x# }( L1 V3 ^9 O3 v
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则