• 技术文章 >后端开发 >Golang

    golang怎么判断指针是否为空

    尚2020-01-13 10:51:59原创2404

    golang判断指针是否为空的方法:

    1、知道类型的情况下,自然是可以使用类型断言后判空。如ai, ok := i.(*int),之后判断ai == nil。

    2、不知道是何种类型的指针,就只好借助反射了vi := reflect.ValueOf(i),后使用vi.IsNil()来判断。但如果i里放到不是一个指针,调用IsNil会出异常,则可能要写一个这样的函数来判空

    func IsNil(i interface{}) bool {
        defer func() {
            recover()
        }()
        vi := reflect.ValueOf(i)
        return vi.IsNil()
    }

    但有这样强加一个defer的recover确实不好看,于是借助类型判断变成这样

    func IsNil(i interface{}) bool {
        vi := reflect.ValueOf(i)
        if vi.Kind() == reflect.Ptr {
            return vi.IsNil()
        }
        return false
    }

    更多golang知识请关注PHP中文网golang教程栏目。

    以上就是golang怎么判断指针是否为空的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:golang
    上一篇:golang怎么判断套接字是否关闭 下一篇:golang循环有几种
    大前端线上培训班

    相关文章推荐

    • golang怎么把字符串转成Int类型• golang怎么判断字符串是否为空• golang怎么判断map是否为空• golang如何打包

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网