当前位置: 首页 > 面试题库 >

在golang中,有一种从地图中获取值切片的好方法吗?

陆文博
2023-03-14
问题内容

如果我有地图m,有没有更好的方法来获取值v的一部分,则

package main
import (
  "fmt"
)

func main() {
    m := make(map[int]string)

    m[1] = "a"
    m[2] = "b"
    m[3] = "c"
    m[4] = "d"

    // Can this be done better?
    v := make([]string, len(m), len(m))
    idx := 0
    for  _, value := range m {
       v[idx] = value
       idx++
    }

    fmt.Println(v)
 }

有地图的内置功能吗?Go包中是否有函数,或者如果需要的话,这是最好的代码吗?


问题答案:

抱歉不行。没有内置的方法可以做到这一点。

附带说明一下,您可以在切片创建中省略容量参数:

v := make([]string, len(m))

这里的容量暗示与长度相同。



 类似资料:
  • 在Go中,有没有更简单/更好的方法从地图中获取一部分密钥? 目前,我正在遍历地图并将关键点复制到一个切片:

  • 问题内容: 我正在用Golang开发网络应用程序。我有一个IP地址。每当出现请求时,我都会使用它来查找返回IP地址的主机IP地址。比较这些的最佳方法是什么? 顺便说一下,在Python中,我们有一个数据结构,使得上述问题很容易解决,但是Go呢? 问题答案: 带“套” 建立我们的集合 Go中没有内置类型,但是您可以优雅地使用a 作为集合,例如: 注意:我们利用了以下事实:如果键不在映射中,则对映射建

  • 问题内容: 如何找出切片的反射值的类型? 以上结果 当我尝试创建错误的切片时会崩溃 例如,而不是因此,我需要在创建反射值之前知道反射值的确切切片类型。 问题答案: 首先,我们需要通过测试来确保我们正在处理切片: 如果没有该检查,您将面临运行时恐慌的风险。因此,既然我们知道我们正在处理切片,则查找元素类型非常简单: 由于我们可能期望许多不同的元素类型,因此可以使用switch语句来区分:

  • 本文向大家介绍golang修改结构体中的切片值方法,包括了golang修改结构体中的切片值方法的使用技巧和注意事项,需要的朋友参考一下 golang修改结构体中的切片值,直接传结构体地址就可以 到此这篇关于golang修改结构体中的切片值方法的文章就介绍到这了,更多相关golang 修改结构体切片值内容请搜索呐喊教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持呐喊教程!

  • 问题内容: 我正在使用反射包来获取任意数组的类型,但是 如何从数组中获取类型?我知道如何从价值中获取价值。 http://play.golang.org/p/sNw8aL0a5f 问题答案: 更改: 至: 顺便说一句,不是一个数组而是一个整数 切片 。

  • 问题内容: 我进行了以下测试,即打印原始输入切片(过滤后),而没有删除元素,但是最后有一个额外的元素,使输入切片具有相同的长度,即使过滤后应该较短。 我已经看过这篇文档https://github.com/golang/go/wiki/SliceTricks#delete 但是我认为我缺少有关Go的一些技巧,因为似乎我使用的切片方法错误。 如何避免出现“输出片段”?(以正确的方式打印,包含正确的元