LINUX.ORG.RU

История изменений

Исправление derlafff, (текущая версия) :

Способы ограничены только полетом твоей фантазии. Можно вот такой вариант сделать:

var MessageHandlers = map[string]func(json.RawMessage) error {
    "ChatMessage": ChatMessageHandler,
}

func ChatMessageHandler(msg json.RawMessage) error {


    // ...
}

handler, found := MessageHandlers[msg.Type]
if !found {
    return errors.New("No handler for this type of message")
}
err = handler(msg.Data)
// ...

Исходная версия derlafff, :

Способы ограничены только полетом твоей фантазии. Можно вот такой вариант сделать:

var MessageHandlers = map[string]func(json.RawMessage) error {
    "ChatMessage": ChatMessageHandler,
}

func ChatMessageHandler(msg json.RawMessage) error {


    // ...
}

handler, found := MessageHandlers[msg.Type]
if !found {
    return errors.New("No handler for this type of message")
}
err = handler(msg.Data)
...