小编Mat*_*ell的帖子

有没有办法将Structs转换为通过频道发送

在GOLANG中,有一种简单的方法可以跨通道为多态行为转换结构吗?我试图在一个通道上发送不同版本的结构,所以例如我将有不同类型的事件,比如LoginEvent.每个结构中都有不同数量的数据.

package main

import "fmt"


type Event struct {
    EvtType EvtType
    Username string
    Data string
}


type LoginEvent struct {
    Event
    CallBackChannel  chan *Event
}


type EvtType int

const (
    Login EvtType = iota+1
    Logout
    ChatMessage
    Presense
    BuddyList
)


func main() {
    fakeOutputChan := make(chan<- *Event)

        ourSrvChannel := make(chan *Event)
        lg := (LoginEvent{Event{Login,"",""} ,ourSrvChannel})
    fakeOutputChan <- (*Event)(&lg)

    fmt.Println("Hello, playground")
}
Run Code Online (Sandbox Code Playgroud)

struct channel go

20
推荐指数
1
解决办法
4186
查看次数

标签 统计

channel ×1

go ×1

struct ×1