Выдается ошибка :
undefined b
undefined err
на вот эти 2 строки:
Это потому что переменные
b и
err не определены. Здесь затенение переменных. Чтобы заработало:
var b []byte
var err error
if msg_format == "json" {
b, err = json.Marshal(in)
} else {
b, err = msgpack.Marshal(in)
}
Далее, если тип возвращаемого значения один ([]byte), но содержание может быть разным, можешь вернуть еще один аргумент, который будет содержать тип (
json или
msgpack)
func getMsgPack(row string) ([]byte, string) {
// omited
return b, "json"
}
Не обязательно строкой тип указывать, тут для наглядности.