类型断言的最佳实践

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 判断,报类型重复情况

以上是关于类型断言的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

更新片段参数的最佳实践?

在片段和活动之间进行通信 - 最佳实践

android片段-数据传递-最佳实践[重复]

在另一个活动托管的片段之间传递数据的最佳实践

在android中使用底部导航的最佳实践:活动与片段

不使用支持库的 Android 4.0、4.1 (<4.2) 中嵌套片段的最佳实践