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

前往:直接附加到在地图中找到的切片

李振国
2023-03-14
问题内容

我想创建一个切片图,将值附加到相应切片上。但是,当尝试直接附加到通过访问它返回的切片时(请参见下面的注释),它不会被存储,因此我不得不使用长格式访问(注释下方的行)。

为什么会这样呢?我希望访问地图可以返回某种指针,所以在我看来mappedAminoAcid == aminoAcidsToCodons[aminoAcid];显然,我错了。

谢谢!

aminoAcidsToCodons := map[rune][]string{}
for codon, aminoAcid := range utils.CodonsToAminoAcid {
    mappedAminoAcid, ok := aminoAcidsToCodons[aminoAcid]

    if ok {
        // NOT WORKING: mappedAminoAcid = append(mappedAminoAcid, codon)
        aminoAcidsToCodons[aminoAcid] = append(mappedAminoAcid, codon)
    } else {
        aminoAcidsToCodons[aminoAcid] = []string{codon}
    }
}

问题答案:

如果基础数组必须增长以适应新元素,则append返回一个新切片。因此,是的,您必须将新的切片放回地图中。例如,这与字符串的工作方式没有什么不同:

var x map[string]string
x["a"] = "foo"

y := x["a"]
y = "bar"

// x["a"] is still "foo"

要获得预期的行为,您必须使用切片指针。

aminoAcidsToCodons := map[rune]*[]string{}
for codon, aminoAcid := range utils.CodonsToAminoAcid {
    mappedAminoAcid := aminoAcidsToCodons[aminoAcid]
    *mappedAminoAcid = append(*mappedAminoAcid, codon)
}

话虽这么说,因为这nil是添加的完美的第一个参数,所以您可以将代码简化为

aminoAcidsToCodons := map[rune][]string{}
for codon, aminoAcid := range utils.CodonsToAminoAcid {
    aminoAcidsToCodons[aminoAcid] = append(aminoAcidsToCodons[aminoAcid], codon)
}


 类似资料:
  • 问题内容: 我正在尝试实现2个简单的结构,如下所示: 我究竟做错了什么?我只想在框结构上调用addItem方法并在其中传递一个项目 问题答案: 嗯…这是人们在Go中附加到切片时最常犯的错误。您必须将结果分配回slice。 另外,您已经定义了类型,因此将该方法称为

  • 我试图实现2个简单的结构如下: 我做错了什么?我只想在box结构上调用addItem方法并传入一个项

  • 问题内容: 我正在尝试使用地图和这些地图的切片来存储从数据库查询返回的行。但是我在row.Next()以及最终的每次迭代中得到的都是查询中同一行的切片。似乎问题与我存储的存储位置相同有关,但直到现在我仍无法解决。 我在这里想念的是什么: 源代码如下: 问题答案: 这是因为您存储在切片中的是指向地图的指针,而不是地图的副本。 从实际运行的Go地图中: 地图类型是引用类型,例如指针或切片… 由于您是在

  • 问题内容: Go编译器抱怨我的代码将切片附加到切片。以下是相关摘录: 该行生成以下编译器消息: 我知道,根据Go Blog帖子中 标题为Append:the Built-in function 一节下的示例,将切片追加到切片会很好。 问题答案: 您需要使用: 另外,还请格式化您的代码:) 您还应该阅读Wiki上的Slice Tricks。

  • 使用材质组件时无法运行project。 错误日志: Android资源链接输出失败:D:\Android Projects\Ghar3\app\src\main\res\layout\main\u layout。xml:23:错误:未找到fabAttached属性(又名com.reseaction.ghar:fabAttached)。错误:链接文件资源失败。 命令:C:\Users\Abdul Q

  • 问题内容: 对mongodb和golang来说是新手。我有一个名为“ myplace”的集合,它具有以下字段place_name,city,纬度,经度。我的问题是用户在某个地方并搜索附近的地方。如何查询mongodb以按位置查找附近。也在golang中。 我的文档结构 提前致谢 问题答案: 您好,对于您的情况,我认为您应该将doc改为 之后,将上述文件索引如下 如果索引执行正确,则编写以下查询以查