复制数组(无大小)

时间:2017-08-23 14:28:23

标签: arrays go

我是新手,我试图从数组中提取一些特定数据(Employee.ID)并将其插入另一个(新)数组。

到目前为止,我没有运气,我使用的代码如下:

package main

import (
    "fmt"
)

type Employee struct {
    ID         int64
    Name       string
    Department string
}

func main() {
    employees := []Employee{{1, "Ram", "India"}, {2, "Criest", "Europe"}}
    ids := []int64{}
    for i, v := range employees {
        fmt.Println(i, v)
    }
}

简而言之,我想从employees数组中提取ID并将其复制到ids数组。 employees数组的大小在任何时间点都不固定。

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

您可以使用d-*-flex获取切片的长度。通常,如果您事先了解尺寸,len(employees)最好选择ids := make([]int64, length),因为随着切片的增长,这将导致更少的分配。

ids := []int64{}

或略有不同的风格:

ids := make([]int64, len(employees))
for i,e := range employees{
   ids[i] = e.ID
}