2
を私は*gin.Context
から受信interface{}
型の値を持つ変換しますエラー:エラーは、インターフェース{} intに行く-ジン
このインターフェイスの値はです。このエラーが発生するのはなぜですか?私はこの値をSQLクエリで使用しています。 SQL文が失敗すると、これをfloat64
に変換することはできません。これをどのようにしてint
に変換できますか?
を私は*gin.Context
から受信interface{}
型の値を持つ変換しますエラー:エラーは、インターフェース{} intに行く-ジン
このインターフェイスの値はです。このエラーが発生するのはなぜですか?私はこの値をSQLクエリで使用しています。 SQL文が失敗すると、これをfloat64
に変換することはできません。これをどのようにしてint
に変換できますか?
interface{}
値に格納されている動的値は、タイプint
とは異なるタイプのfloat64
であることがわかります。
(あなたがやったとしてtype assertionを使用して)タイプfloat64
の値を抽出し、簡単なtype conversionを使用して変換を行います。
f := c.MustGet("account").(float64)
i := int(f)
// i is of type int, you may use it so
または1行で:
i := int(c.MustGet("account").(float64))
種類を確認するには値:
fmt.Printf("%T %v\n", i, i)
両方の場合の出力それGo Playground上):
int 1
http://stackoverflow.com/questions/8022389/convert-a-float64-to-an-int-in-go?rq=1 – kingSlayer