interface cast nilのケース

nilでない場合

func main() {
    var i myIf
    u := User{Name: "hello"}
    i = u
    if v, ok := i.(User); ok {
        log.Print(v.Name) // helloと出力される
    } else {
        log.Print(nil)
    }
}

nilの場合

func main() {
    var i myIf // i == nil の状態
    if v, ok := i.(User); ok {
        log.Print(v.Name)
    } else {
        log.Print("nil!") // nil! と出力される
    }
}