我正在尝试创建一个伪队列结构并在其中插入作业结构。我做错了什么?
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)
}
上面的代码抛出:
无法在作业中使用作业(类型作业)作为类型队列
答案 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)
[]TypeName
是TypeName
类型切片的定义。
就像它说:
var queue []Queue
是Queue
类型的实例片段。
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"})