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

编译器错误将切片附加到切片

柴彬
2023-03-14
问题内容

Go编译器抱怨我的代码将切片附加到切片。以下是相关摘录:

type LanidEntry struct {
    lanid   string
    group   string
    contact string
}

var lanids []LanidEntry

func load_file() (lanids_loaded []LanidEntry, errormsgs string) {
    // ...
}

func Load() (lanids []LanidEntry, errormessages string) {
    lanids_loaded, errormsgs := load_file(filename1, contact1)
    lanids = append(lanids, lanids_loaded)
    // ...
}

append行生成以下编译器消息:

 src\load_lanids\load_lanids.go:50: cannot use lanids_loaded (type []LanidEntry) as type LanidEntry in append

我知道,根据Go Blog帖子中 标题为Append:the
Built-in function
一节下的示例,将切片追加到切片会很好。


问题答案:

您需要使用...

lanids = append(lanids, lanids_loaded...)

另外,还请格式化您的代码:)

您还应该阅读Wiki上的Slice Tricks。



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

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

  • 问题内容: 我今天在go代码中遇到了奇怪的行为:当我追加到in循环中,然后尝试根据循环的结果创建new时,最后一个重写了previous 。 在这个特殊的例子这意味着 ,和切片的最后一个元素都没有,和分别,但是......始终! 第二个示例- 行为符合预期。 链接至play.golang:https : //play.golang.org/p/INADVS3Ats 经过一番阅读,挖掘和实验后,我发

  • 问题内容: 我有零片: 我在其中添加一个元素: 为什么在一个nil slice上附加一个元素会使容量增加2? 使用来打印切片显示以下内容: 我也很困惑为什么重新切片会显示一个零,该零既不在原始切片中也不附加在原始切片上: 问题答案: Go可以免费为您提供超出您要求的容量。通过减少所需的分配(可以复制)数量来提高性能。容量只是在需要另一分配之前保留的空间量。 如果至少在我的实验中将5个元素添加到此片

  • 我有 我想要 在JS我可以做 像这样简单的方法之一 围棋里有这样的东西吗?

  • 问题内容: 我很好奇拆包切片并将其作为参数发送给可变参数函数。 假设我们有一个带有可变参数的函数: 如果我们不想传入一个接口,它就可以工作,那么我们是否拆包都没关系: 如果我们有一片片的话,那会很棘手。在这里,编译器不允许我们传递解压版本: 错误提示: 在解包参数中不能将sliceOfSlices(类型[] [] interface {})用作类型[] interface {} 我不知道为什么会这