package slice import ( "math/rand" "strings" "time" "github.com/zhang2092/gohelpers/pkg/convertor" ) // Contains slice中是否包含某个字符串 func Contains(slice []string, element string) bool { for _, i := range slice { if i == element { return true } } return false } // RemoveDuplicatesFromSlice 去重 func RemoveDuplicatesFromSlice(intSlice []string) []string { keys := make(map[string]bool) var list []string for _, entry := range intSlice { if _, value := keys[entry]; !value { keys[entry] = true list = append(list, entry) } } return list } // Shuffle 随机打乱 func Shuffle(array []string) []string { random := rand.New(rand.NewSource(time.Now().UnixNano())) for i := len(array) - 1; i > 0; i-- { j := random.Intn(i + 1) array[i], array[j] = array[j], array[i] } return array } // ReverseSlice 反转 func ReverseSlice(a []int) []int { for i := len(a)/2 - 1; i >= 0; i-- { pos := len(a) - 1 - i a[i], a[pos] = a[pos], a[i] } return a } // ConvertSliceIntToString 将 slice 转换为逗号分隔的字符串 func ConvertSliceIntToString[T int | int8 | int16 | int32 | int64](input []T) string { var output []string for _, i := range input { output = append(output, convertor.ToString(i)) } return strings.Join(output, ",") }