2016-05-10 24 views
-2

我得到一个语法错误,我找不出原因。我尝试了几个变化,但没有成功。卡在Go语法错误,我看不到

type dataType int64 

const (
    PM_SENT dataType = iota + 1 
    PM_VIEWED 
) 

func messageHandler(m []byte) error { 
    var data map[string]interface{} 
    if err := json.Unmarshal(m, &data); err != nil { 
     return err 
    } 

    var dt dataType 
    flt, ok := data["type"].(float64); ok { 
     dt = dataType(flt) 
    } 

    return nil 
} 

我收到此错误:

.\messageHandler.go:23: syntax error: unexpected =, expecting comma or } 

即使我改变这一点,我仍然得到同样的错误:

var dt int64 
flt, ok := data["type"].(float64) 
if ok { 
    dt = int64(flt) 
} 
+3

第一个例子是缺少'if'。第二个示例不会有完全相同的错误,因此请确保您的代码已保存,并显示您遇到的错误。 – JimB

+0

你是对的。第二个给“。\ messageHandler.go:20:dt声明和不使用” – Alex

+0

然后,你还没有使用'dt'。如果您不确定这意味着什么,请展示一个完整的示例。 – JimB

回答

0

此代码不抛出任何错误:

if flt, ok := data["type"].(float64); ok { 
    dt = int64(flt) 
}