DRYな備忘録

Don't Repeat Yourself.

Go言語でmapのkey_exists的なやつ

memo

package main

import "log"

func main() {
 
    m := make(map[string]string)
 
    m["exists"] = "みつかったでござる"
    // m["not_exists"] = "みつからない"
 
    v, ok := m["exists"]
    println(v, ok)
 
    v, ok = m["not_exists"]
    println(v, ok)
 
    // よくやるやつ
    if val, found := m["not_exists"]; ! found {
        // handle exception
        log.Fatalln(val, "うへええええええええあああ")
    }
}

蛇足ですけど

  • さいごの「よくやるやつ」だと、valのスコープはif内だけだから注意
  • 外でも使いたいなら先にvar val stringとかしとけばそのスコープで有効