に落ちる:型アサーションIは、基準外のマップを取得しようとしていますし、アサーションは失敗しているように見える参照/ポインタ
session.AddFlash(gin.H{
"username": username,
"password": password,
}, "_post")
...
flashes := session.Flashes("_post")
if flashes != nil {
flash = flashes[0]
fmt.Printf("%T\n", flash)
if post_data, ok := flash.(gin.H); ok {
fmt.Println("post_data:", post_data)
data = post_data
} else {
fmt.Println("post_data(failed):", post_data)
}
}
を私は常に取得しかし、
*gin.H
post_data(failed): map[]
は私が試した私がそうやっているアサーションにその原因があるとします:アサートに失敗した次の出力、
if post_data, ok := (*flash).(gin.H); ok {
しかし、私は、私も試してみましたinvalid indirect of flash (type interface {})
を得る:
if post_data, ok := *flash.(gin.H); ok {
しかし、それは私に与えタイプのアサーションは、あなたがあることを主張したいタイプを必要とinvalid indirect of flash.(gin.H) (type gin.H)
関連するコード全体を貼り付けることはできますか?どのようにフラッシュを作成し、それは何ですか? –
最初の印刷を 'fmt.Printf("%T \ n "、flash)'に変更します。これは 'flash'の型を出力し、型アサーションで使う正しい型に導きます。より多くのヘルプが必要な場合は、結果を報告してください。 ...または前のコメントで尋ねられたように私たちに関連コードを見せてください。 –
@ T.Claverieコードを追加しました。フラッシュはgin.Hです。 – Gorilla3D