golang_类型断言:go中如何判断变量的数据类型

类型断言

判断变量的数据类型

语法:

1、值.(数据类型),返回是否是指定的值的本身和数据类型

2、值.(type),返回的是指的数据类型

if实现:

type Student struct {
	name string
	age int
}

func main(){
	i := make([]interface{},3) //定义一个长度为3的空接口数组
	i[0] = 1
	i[1] = "go"
	i[2] = Student{"loria",25}

	//类型查询,类型断言
	for index, data := range i{
		//第一个返回的是值,第二个返回的是判断内容的真假
		if value, ok := data.(int); ok == true {
			fmt.Printf("x[%d] 类型为int,内容为%d\n",index,value)
		}else if value, ok := data.(string); ok == true {
			fmt.Printf("x[%d] 类型为string,内容为%s\n",index,value)
		}else if value, ok := data.(Student); ok == true {
			fmt.Printf("x[%d] 类型为Student,内容为name=%s,age=%d\n",index,value.name,value.age)
		}
	}
}

运行结果:

x[0] 类型为int,内容为1
x[1] 类型为string,内容为go
x[2] 类型为Student,内容为name=loria,age=25

switch实现:

	for index, data := range i{
		switch value := data.(type) {
		case int:
			fmt.Printf("x[%d] 类型为int,内容为%d\n",index,value)
		case string:
			fmt.Printf("x[%d] 类型为string,内容为%s\n",index,value)
		case Student:
			fmt.Printf("x[%d] 类型为Student,内容为name=%s,age=%d\n",index,value.name,value.age)
		}
	}

运行结果:

x[0] 类型为int,内容为1
x[1] 类型为string,内容为go
x[2] 类型为Student,内容为name=loria,age=25
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值