slice.go 689 Bytes
package uttype

import "math/rand"

// Contains 切片内是否有
func Contains[T comparable](values []T, value T) bool {
	for _, v := range values {
		if v == value {
			return true
		}
	}
	return false
}

// Min 最小值
func Min[T Number](values ...T) T {
	result := values[0]
	for _, v := range values[1:] {
		if v < result {
			result = v
		}
	}
	return result
}

// Max 最大值
func Max[T Number](values ...T) T {
	result := values[0]
	for _, v := range values[1:] {
		if v > result {
			result = v
		}
	}
	return result
}

// Shuffle 打乱
func Shuffle[T any](list []T) {
	for i := len(list) - 1; i > 0; i-- {
		j := rand.Intn(i + 1)
		list[i], list[j] = list[j], list[i]
	}
}