2016-05-10 25 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) 
}