繁体   English   中英

如何在Go中创建自定义类型元素的自定义类型数组?

[英]How do I make a customized type array of customized type elements in Go?

我正在尝试创建一个名字和薪水的人,然后是一群人。 我在“data [0] = a”处得到的错误表明:“不能使用(类型人)作为类型*人员。” 我需要做某种类型的转换,就像在Java中一样吗?

package main

import "fmt"

type person struct {
    name   string
    salary float64
}

type people []*person

func main() {

    var data = make(people, 10)

    var a person
    var b person
    a.name = "John Smith"
    a.salary = 74000
    b.name = "Jane Smith"
    b.salary = 82000

    data[0] = a
    data[1] = b

    fmt.Print(data)
}

你构建一个指向 person指针 这就是为什么你应该指向你ab

package main

import "fmt"

type person struct {
    name   string
    salary float64
}

type people []*person

func main() {
    var data = make(people, 10)

    var a person
    var b person
    a.name = "John Smith"
    a.salary = 74000
    b.name = "Jane Smith"
    b.salary = 82000

    data[0] = &a
    data[1] = &b

    fmt.Print(data)
}

另一种方法是将ab定义为结构的指针。

package main

import "fmt"

type person struct {
    name   string
    salary float64
}

type people []*person

func main() {
    var data = make(people, 10)
    a := &person{}
    b := &person{}

    a.name = "John Smith"
    a.salary = 74000
    b.name = "Jane Smith"
    b.salary = 82000

    data[0] = a
    data[1] = b

    fmt.Print(data)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM