类型断言的最佳实践
Posted swei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型断言的最佳实践相关的知识,希望对你有一定的参考价值。
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 判断,报类型重复情况
以上是关于类型断言的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章