go类型断言
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 里面的基础类方法
先举个例子看看:
<