Go学习日记2-Go类型断言

本文介绍了Go语言中的类型断言,它不同于Java中的assert,主要用于interface{}类型的判断与转换。文章通过示例展示了类型断言的用法,探讨了B类型是否可以当作A类型使用,以及A和B继承相同接口C时的断言行为。此外,还提到了类型断言与switch结合的特殊用法,以及在接口判断中的顺序影响。
摘要由CSDN通过智能技术生成

1.什么是Go类型断言?

在java中,关键字assert用来实现断言。
百度一段官方点点定义就是:

编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。
使用断言可以创建更稳定、品质更好且 不易于出错的代码。当需要在一个值为FALSE时中断当前操作的话,可以使用断言。单元测试必须使用断言(Junit/JunitX)。
除了类型检查和单元测试外,断言还提供了一种确定各种特性是否在程序中得到维护的极好的方法。

说了一团,其实就是assert关键字点用法。我们经常在java中使用断言比如说在写单元测试,或者直接使用断言抛出错误结束方法等。

但是go没有直接说跟java相似的字段,只存在一个叫类型断言。其用法相当于与assert的一个子集,只能断言interface{}类型。

2.Golang 类型断言用法

go里面的类型断言写法:

x.(T)

其中x为interface{}类型 T是要断言的类型。

类型断言有个非常好的使用场景:当某个类型为interface{}的变量,真实类型为A时,才做某件事时,这时可以使用类型断言0

go语言中任何类型都是interface{}类型,所以这个方法可以理解为java中object 里面的基础类方法

先举个例子看看:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ocean曈

您的支持,是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值