指引网

当前位置: 主页 > 编程开发 > C >

Golang中对interface{}做type assertion和type switch学习笔记

来源:网络 作者:佚名 点击: 时间:2017-07-19 23:09
[摘要]  本文章来为各位介绍一篇关于Golang中对interface{}做type assertion和type switch学习笔记,希望文章对大家有帮助.

interface{}是一个通用类型,可以储存任意类型的值。如下方法来获取值的实际类型:
如果你比较确定类型可以使用type assertion:

var num interface{} = 100
if val,ok := num.(int); ok {
    fmt.Println(val)
}

如果你不确定interface{}的具体类型,使用type switch:

var str interface{} = "abc"
 
switch v := str.(type) {
case string:
 fmt.Println(v)
case int32, int64:
 fmt.Println(v)
default:
 fmt.Println("unknown")
}

------分隔线----------------------------