回答

收藏

如何检查地图是否包含 Go 中的键?

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

我知道我可以通过以下方式遍历地图m,8 P4 v  t6 G. l. Z
    for k,v := range m { ... }6 c! e2 n1 ^. I  T5 [
并一把钥匙,但地图上有没有更有效的方法来测试钥匙的存在?
- g+ d) j. z! @0 I) ]5 d                                                               
& Q6 U) r' `& u0 u% E, _    解决方案:                                                                " K: \  t7 z3 _, Q
                                                                回答:
! y  u( N( z0 R# K* r: ^% O
    if val,ok := dict["foo"]; ok {      do something here}
    - |5 o) u2 C. M. q% m- v0 b! h
解释:ifGo 中的句子可以包括条件句和初始句。上述例子同时使用:: x5 c6 j+ {/ Q* X  c- i  u/ Z
两个变量 的初始化-val将从地图接收foo值或零值(在这种情况下是空字符串),ok并将接收布尔值,true如果“foo它实际上存在于地图中,它将被设置为
! U4 l! ?+ g. [& j- `6 `评估ok,true如果“foo”在地图中
如果“foo确实存在于映射中,那么if句子的主体将被执行和执行val在这个范围内是本地的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则