go语言接口类型断言解析

1 类型断言

写法:x.(T)。
x:一个需要断言的接口类型,T:断言类型。
用于:判断x是否满足T的接口,查询x是否包含了T中的接口。

2 判断一个变量是否实现了指定接口

例子:

if err,ok :=x.(error); ok {
	return err.Error()
}

3 转化类型

定义:如果我们反向要知道这个接口变量⾥⾯实际存储的是哪个类型的对象可以采⽤以下⽅法进⾏转换

    var t int
    var x interface{}
    x = t
    y, ok = x.(int) //转成int,带检查

4 获取类型

func justify(items ...interface{}) {
	for index, v := range items {
		switch v.(type) {
		case int:
			fmt.Printf("第 %d 个参数 is int\n", index)
		case int32:
			fmt.Printf("第 %d 个参数 is int32\n", index)
		case float32:
			fmt.Printf("第 %d 个参数 is float32\n", index)
		
		}
	}
}

func main(){
	var a int
	var b float32
	var c int32
	justify(a, b, c)
}
发布了103 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/leinminna/article/details/105163278