arrays - 如何在结构中附加 slice

标签 arrays go struct slice

这个问题在这里已经有了答案:





Golang append an item to a slice

(13 个回答)


1年前关闭。




Go 将项目添加到 slice 或数组的语法是什么?

package main

import "fmt"

type Car struct{
    Code string
    Brand string
    Type string
    Price int 
    Supply int
}

var Stock []Car

func init()  {
    Stock = []Car{
        Car{
            Code:"TOY13EMTAV",
            Brand:"Toyota Avanza",
            Type:"1.3 E M/T",
            Price:191100000,
            Supply:2,
        },
        Car{
            Code:"TOY15GMTAV",
            Brand:"Toyota Avanza",
            Type:"1.5 G M/T",
            Price:221250000,
            Supply:3,
        },
        Car{
            Code:"TOY15GCVTYAR",
            Brand:"Toyota Yaris",
            Type:"G CVT",
            Price:257650000,
            Supply:5,
        },
    }
}

最佳答案

可以使用 append 将数据添加到 slice 内置方法。要附加到 slice ,请将 slice 作为参数传递并将新 slice 分配回原始 slice 。如果您只是在学习这门语言,那么为什么必须这样做的细节并不重要,但可以说它使事情变得更有效率就足够了。例如:

Stock = append(Stock, Car{
  Code: "newcar",
  // …
})

您还可以找到 this section来自 Effective Go如果您想更好地了解 append,则附加有用.

这是您的示例的修改版本,可以在 Go playground 上运行。我对代码进行了一些其他小的更改,这些更改可能对新开发人员学习有用也可能没有用:

https://play.golang.org/p/AqlrL47pImw

关于arrays - 如何在结构中附加 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58781455/

相关文章:

javascript - 你如何遍历数组并只提取键 :value that are specific values?

C++ 制作数组哈希

php - 在多维数组中填充值 (PHP)

go - 如何在 Travis-CI 上将 Go 项目从 Linux 交叉编译到 Windows

c - 在 C 中将双指针作为参数传递

c# - 为什么公共(public)领域比属性更快?

c++ - C 风格的字符数组——我们存储多少字节?

go - 为什么 golang sched 在变量为奇数或偶数时运行不同?是巧合还是命中注定?

pointers - 为什么要使用指针(性能)?

python - 确定 python struct/pack fmt 字符串中的元素数量?