例えば、以下のソースを実行してみると、一回目のリクエスト時は1、二回目以降のリクエストでは、2,3,4と増えていってしまいます。
go
1package controller 2 3import ( 4 "github.com/gin-gonic/gin" 5) 6 7var count = 0 8 9func Count(c *gin.Context) { 10 count += 1 11 c.JSON(200, count) 12} 13 14// main.goではhttpリクエストがあった際に上記の「Count」が実行されます。
以下のように呼び出される関数内で初期値を明示してあげると改善(常に1が出力される)しました。
func Count(c *gin.Context) { count = 0 count += 1 c.JSON(200, count) }
ずっとPHPをやっていた身としては中々衝撃的な動きに思うのですが、上記のように明示的に初期値を設定するのが普通なのでしょうか?
(似た問題としては、リクエスト時に作成したmysqlコネクションを明示的にcloseしてあげないと、リクエストのたびにmysqlコネクションが落ちずに残ってしまい「too many connection~」となってしまいました。)
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/06 11:28
2017/05/06 12:32
2017/05/06 13:38
2017/05/06 13:49 編集
2017/05/06 13:50