go 判断一个目标元素是否在目标数组中

  • Post author:
  • Post category:其他


  1. 目标数组只能包含整形、字符串、布尔类型等基本类型
  2. 目标元素只能包含整形、字符串、布尔类型等基本类型
  3. 非interface数组需要先转换为对于的interface数组
  4. 其余基本类型的转换按思想实现即可
import "reflect"

func FolatArray2Interface(array []float32) []interface{} {
	var goalArray []interface{}
	for _, value := range array {
		goalArray = append(goalArray, value)
	}
	return goalArray
}
func IntArray2Interface(array []int) []interface{} {
	var goalArray []interface{}
	for _, value := range array {
		goalArray = append(goalArray, value)
	}
	return goalArray
}

func StringArray2Interface(array []string) []interface{} {
	var goalArray []interface{}
	for _, value := range array {
		goalArray = append(goalArray, value)
	}
	return goalArray
}

func InArray(array []interface{}, element interface{}) bool {
	// 实现查找整形、string类型和bool类型是否在数组中
	if element == nil || array == nil {
		return false
	}
	for _, value := range array {
		// 首先判断类型是否一致 
		if reflect.TypeOf(value).Kind() == reflect.TypeOf(element).Kind() {
			// 比较值是否一致
			if value == element {
				return true
			}
		}
	}
	return false
}

如有错误,欢迎指出,大家一起进步~



版权声明:本文为qq_43826939原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。