类型断言的最佳实践
Golang语言中的类型断言的最佳实践
- 利用函数typejudge 来判断传入的实参是什么类型,并打印出它的类型及数值
package main
import(
"fmt"
_"sort"
_"math/rand"
)
type Wisdom struct{
name string
}
func TypeJuDge (Items... interface{}) {
for index, value := range Items {
switch value.(type){
case bool:
fmt.Printf("第%v个参数是布尔类型,它的值是%v \n",index+1,value)
case string:
fmt.Printf("第%v个参数是字符串类型,它的值是%v \n",index+1,value)
case int,int32,int64:
fmt.Printf("第%v个参数是整数类型,它的值是%v \n",index+1,value)
case float32,float64:
fmt.Printf("第%v个参数是浮点类型,它的值是%v \n",index+1,value)
// case bool:
// fmt.Printf("第%v个参数是bool类型,它的值是%v \n",index+1,value)
case Wisdom:
fmt.Printf("第%v个参数是自定义Wisdom类型,它的值是%v \n",index+1,value)
case *Wisdom:
fmt.Printf("第%v个参数是自定义Wisdom指针类型,它的值是%v \n",index+1,value)
}
}
}
func main(){
wisdom := Wisdom{ "智慧"}
wisdom2 := &Wisdom{ "人名"}
var n1 float64 = 68.9
var n2 bool
var n3 int = 100
var name string = "GOLANG"
TypeJuDge(wisdom,wisdom2,n1,n2,n3,name)
}
- 终端显示结果:
GOLANG语言的运行报错
- duplicate case bool in type switch previous case at .\main.go:14:4
- 原因是因为我多写了一个case bool 判断,报类型重复情况
更多精彩

