

goでechoを使用してセッションを使ってカードをセットした配列を次のページで使おうと思っております。  
echoの公式docに従ってgorilla/sessionsを使っています。  
indexの際にはうまくvalueが表示されるのですが、なぜが次に引き継がれません。  
ただの文字列であれば引き継がれるのですが、配列は引き継げないのでしょうか？  
うまいやり方をご教示ください。  
一部のプログラムを記載します。

[code]

    var card [4][13] map[string]int
    
    // Handler
    func Index(c echo.Context) error {
        data := map[string]interface{}{
            "message": "",
        }
    
      sess, _ := session.Get("session", c)
      sess.Options = &sessions.Options;{
        Path:     "/",
        MaxAge:   86400 * 7,
        HttpOnly: true,
      }
    
        // カードをセットする。   
        // cardにvalue S1H13セット 
        var prefix string
        for i, v := range card {
            switch {
            case i == 0:
                prefix = "S"
            case i == 1:
                prefix = "D"
            case i == 2:
                prefix = "C"
            case i == 3:
                prefix = "H"
            default:
            }
    
            for j, _ := range v {
    
            number := strconv.Itoa(j + 1)
            card[i][j] = make(map[string]int)
            card[i][j][prefix + number] = 0
            }
        }
    
      sess.Values["test"] = "test"
      sess.Values["card"] = card
      sess.Save(c.Request(), c.Response())
        fmt.Println(sess.Values["test"])
        fmt.Println(sess.Values["card"])
    
        return c.Render(http.StatusOK, "index.html", data)
    }
    
    func SessionTest(c echo.Context) error {
        sess, _ := session.Get("session", c)
    
        fmt.Println(sess.Values["test"])
        fmt.Println(sess.Values["card"])
    
        data := map[string]interface{}{
            "message": "",
        }
        return c.Render(http.StatusOK, "nervous_breakdown.html", data)
    }
    
    
[/code]


CC BY-SA 4.0
2019-02-11T15:33:52.010
52706
2019-02-11T15:33:52.010
32140
question
go
go言語のセッション管理について