美文网首页Go语言
Go之断言类型(assert type)

Go之断言类型(assert type)

作者: 灰常出色 | 来源:发表于2020-06-16 20:50 被阅读0次

    1.背景介绍:

    笔者最近在使用一个数据结构实现多个接口,但是却发现想要在一段时间内转换成接口1,另外一段时间转换成接口2,所以也就使用到了断言类型。在看过断言类型之后,觉得还是很有必要讲一讲这个断言类型,于是便有了这篇文章。

    2.断言类型介绍:

    接口类型提供一种,将接口类型转换成具体类型的转换方法,也就是断言类型(assert type)。使用方法如下所示:

    t := i.(T)

    // T:表示的是具体的数据类型,i:表示的是接口变量i,t:表示的是转换之后的变量。

    这个语句实现的功能是:将接口变量i按照类型T转换成t,其中t中的值是i转换得来的,一旦转换不成功就会触发一个panic。

    除此之外还有另外一个写法:

    t, ok := i.(T)

    // 表达式里面多了一个ok,实现的功能是:将接口i按照类型T转换成t,如果类型匹配ok=true,如果类型不匹配,ok=false。 改语句不会触发panic。

    详情参见:Go语言之断言类型

    欢迎关注公众号:灰子学技术


    英文原文可以参考:https://tour.golang.org/methods/15

    https://medium.com/golangspec/type-assertions-in-go-e609759c42e1

    相关文章

      网友评论

        本文标题:Go之断言类型(assert type)

        本文链接:https://www.haomeiwen.com/subject/inxlxktx.html