Go 中 nil 的类型

Ken*_*tov 0 null go

如何处理运算符nil中的返回类型switch-case

func someFunc() interface{}{
    if 5>2{
        return nil
    }else if something{
        return 42
    }
    return nil
}

func main() {
    switch someFunc().(type) {
    case int:
    case types.Nil:
        fmt.Println("5>2")
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码不打印任何内容,但我期望“5>2”。我应该怎样做才正确呢? https://play.golang.org/p/vAdiH925LDl

Cer*_*món 6

使用nil

func main() {
    switch someFunc().(type) {
    case int:
    case nil:
        fmt.Println("5>2")
    }
}
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/XcJwM2wnGZG