包含结构的golang类型数组

时间:2017-02-07 09:48:37

标签: go

我正在尝试创建一个伪队列结构并在其中插入作业结构。我做错了什么?

import "fmt"

type Job struct {
    Type string
    Url string
}

type Queue [] Job

func main() {
    var queue []Queue
    job   := Job{"test", "http://google.com"}

    queue[0] = job
    fmt.Println(queue)
}

上面的代码抛出:

  

无法在作业中使用作业(类型作业)作为类型队列

3 个答案:

答案 0 :(得分:4)

您不需要一片队列,也不应该为空切片编制索引。

package main

import "fmt"

type Job struct {
    Type string
    Url string
}

type Queue []Job

func main() {
    var q Queue
    job := Job{"test", "http://google.com"}
    q = append(q, job)
    fmt.Println(q)
}

答案 1 :(得分:3)

我认为问题在于:

mysite.azurewebsites.net

此处var queue []Queue queue的切片或Queue切片的切片。因此,不可能首先分配其Job的元素值。

尝试:

Job

答案 2 :(得分:0)

[]TypeNameTypeName类型切片的定义。

就像它说:

var queue []QueueQueue类型的实例片段。

q := Queue{Job{"test", "http://google.com"}, Job{"test", "http://google.com"}}

绝对不是你想要的。而不应该声明var queue Queue

var queue Queue
q := append(queue, Job{"test", "http://google.com"}, Job{"test", "http://google.com"})