包含结构的 golang 类型数组

bth*_*he0 4 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)
}
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出:

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

Eug*_*sky 5

我认为问题就在这里:

var queue []Queue
Run Code Online (Sandbox Code Playgroud)

queue是 的切片Queue或切片的切片Job。所以不可能先分配它的元素值Job

尝试:

var queue Queue
Run Code Online (Sandbox Code Playgroud)


dev*_*max 5

您不需要队列切片,也不应该为空切片建立索引。

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)
}
Run Code Online (Sandbox Code Playgroud)