20211007のGoに関する記事は2件です。

[Golang]Goでの繰り返し処理をまとめる

はじめに 改めてGoの繰り返し処理についてまとめて行きます。 for文 普通のfor文 for i := 1; i <= 5; i++ { fmt.Println(i) // 1,2,3,4,5 } continueを使って、スキップする for i := 0; i < 10; i++ { if i%2 == 0 { continue } fmt.Println(i) } breakを使って処理を終了する for i := 0; i < 10; i++ { if i == 5 { break } fmt.Println(i) } for range for i, v := range []string{"foo", "bar", "baz"} { fmt.Println(i, v) } 結果 0 foo 1 bar 2 baz 連想配列を使う場合 for k, v := range map[string]int{"key-1": 100, "key-2": 200, "key-3": 300} { fmt.Println(k, v) } 結果 key-1 100 key-2 200 key-3 300 Eachを使いたい人向け package main import "fmt" type StrSlice []string func (a StrSlice) Each(f func(i int, v string)) { for i, v := range a { f(i, v) } } type IntSlice []int func (a IntSlice) Each(f func(i int, v int)) { for i, v := range a { f(i, v) } } func main() { StrSlice{"foo", "bar", "baz"}.Each(func(i int, v string) { fmt.Println(i, v) }) IntSlice{10, 20, 30}.Each(func(i int, v int) { fmt.Println(i, v) }) } 終わりに 多言語にあるようなeachを使えないことに不満をいだいている人が多いけど、 自分的には、for range使えればいいかなと思ってます。 マジで使いたかったら、上記の用に作っちゃえばいいかなって感じですね! 参考文献
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Golang]GinでCookieをセットする方法

はじめに GinでCookieをセットするやり方でハマったので、記録します。 やり方 // Cookieをセット cookie := new(http.Cookie) cookie.Value = token //Cookieに入れる値 // samesiteをnonemodeにする c.SetSameSite(http.SameSiteNoneMode) // ローカルの場合 if os.Getenv("ENV") == "local" { log.Println("cookieをセットする") c.SetCookie("jwt", cookie.Value, 3600, "/", "localhost", true, true) }        // 本番環境の場合 if os.Getenv("ENV") == "production" { log.Println("productionでcookieをセットする") c.SetCookie("jwt", cookie.Value, 3600, "/", "your_domain", true, true) } SetCookieについて SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool) ハマったところ samesiteをnoneモードにしないといけないところ 環境に合わせて、ドメインを入力するところ 終わりに なかなかGinに関する情報って出てこなかったので、苦労しました、、 参考記事
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む