美文网首页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)

    1.背景介绍: 笔者最近在使用一个数据结构实现多个接口,但是却发现想要在一段时间内转换成接口1,另外一段时间转换成...

  • Selenium+python之断言使用

    1、常用的断言: 2、异常类型: 3、UnitTest框架中的断言 例子: 也可以这么用assert断言: 4、w...

  • 第04天(面对对象编程)_04

    16_接口的继承.go 17_接口转换.go 18_空接口.go 19_类型断言:if.go 20_类型断言:sw...

  • go语言的类型断言(Type Assertion)

    x.(T) 检查x的动态类型是否是T,其中x必须是接口值。 如果T是具体类型类型断言检查x的动态类型是否等于具体类...

  • 断言NSAssert

    NSAssert与assert NSAssert和assert是断言,主要的差别是assert在断言失败的时候只是...

  • NSAssert断言

    NSAssert与assert NSAssert和assert是断言,主要的差别是assert在断言失败的时候只是...

  • TypeScript入门基础(类型断言、内置对象)

    类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。语法 <类型>值 或 值 as 类...

  • 程序调试的一些心得和经验

    整理程序调试的一些踩坑,经验整理,注意事项等。 assert断言在程序中插入assert 断言可以让程序出现意料之...

  • TypeScript类型断言

    类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。 语法 在 tsx 语法(Reac...

  • 测试框架-断言和预期结果

    前言 断言assert是测试框架的重要组成部分。本篇介绍断言的各种类型,结合测试框架介绍3种断言工具。//TODO...

网友评论

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

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