Go 无法在多次分配中将*pubsub.Topic分配给mytopic(键入custom)
我正在尝试使用包gocloud.dev/pubsub在Go中创建两个简单的createTopic()和sendMessage()函数 然而,我得到了一个错误的说法 ./topic.go:18:15:无法在多次分配中将*pubsub.topic分配给mytopic(键入mytopic) 代码如下所示:Go 无法在多次分配中将*pubsub.Topic分配给mytopic(键入custom),go,publish-subscribe,google-cloud-pubsub,Go,Publish Subscribe,Google Cloud Pubsub,我正在尝试使用包gocloud.dev/pubsub在Go中创建两个简单的createTopic()和sendMessage()函数 然而,我得到了一个错误的说法 ./topic.go:18:15:无法在多次分配中将*pubsub.topic分配给mytopic(键入mytopic) 代码如下所示: main.go package main import ( "context" "log" _ "gocloud.de
main.go
package main
import (
"context"
"log"
_ "gocloud.dev/pubsub/mempubsub"
)
func main() {
mytopic := mytopic{}
ctx := context.Background()
mytopic, err := createTopic(ctx, "mem://topicA")
if err != nil {
log.Fatal("Error occured", err)
}
mytopic.sendMessage(ctx, "hello")
}
有人知道我做错了什么吗?错误消息很好地描述了问题。以下是修复方法: 使用指针字段:
type mytopic struct {
*pubsub.Topic
}
将pubsub.OpenTopic的返回值分配给字段:
var err error
var mytopic mytopic
mytopic.Topic, err := pubsub.OpenTopic(ctx, "mempubsub")
var err error
var mytopic mytopic
mytopic.Topic, err := pubsub.OpenTopic(ctx, "mempubsub")