回答

收藏

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

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

在 Go 中映射是按值传递还是按引用传递?3 N/ N6 e4 r; i& H) S, L
函数总是可以定义如下,但这是否有点矫枉过正?1 G0 T4 i7 p7 D$ u  g) [; @3 A
    func foo(dat *map[string]interface{}) {...}! I- e) b$ v" d# B3 j
返回值的相同问题。我应该返回指向地图的指针,还是以地图为值?& R0 |; M5 Z. a) X2 V
当然,目的是避免不必要的数据复制。" e0 B& S6 }, P& v8 v3 `* @2 }
                                                               
1 t$ X9 N8 h0 M5 \3 }; J    解决方案:                                                                ) `% h) j9 M. ?8 @5 y' _+ P
                                                                您不需要将指针与地图一起使用。
9 T" c( r( ^+ p8 }+ ]映射类型是引用类型,如指针或切片[1]; e5 A. K% u( e
如需更改会话,可使用指针:
- s( Q$ t) }* B  M. `8 X# z: y
    map[string]*Session" x/ D% I5 F6 z5 s0 t7 K
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则