版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010986776/article/details/85766183
判断切片相等
func AreEquivalentSlice(temp, answers []interface{}) bool {
if len(temp) != len(answers) {
return false
} else {
for i, v := range temp {
//先判断类型是否相同
if reflect.TypeOf(v) != reflect.TypeOf(answers[i]) {
return false
}
if v != answers[i] {
return false
}
}
}
return true
}
切片洗牌
/*打乱任意类型切片*/
func ShuffleSlice(slice []interface{}) []interface{} {
var newSlice = []interface{}{}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
for {
if len(newSlice) == len(slice) {
break
}
index := r.Intn(len(slice))
value := slice[index]
if value != nil {
newSlice = append(newSlice, value)
slice[index] = nil
}
}
return newSlice
}
获得乱序切片
/*获得指定范围的乱序切片*/
func GetShuffledIntSlice(start, end int) []int {
var slice = []int{}
for i := start; i < end; i++ {
slice = append(slice, i)
}
//得到slice乱序切片
slice = ShuffleIntSlice(slice)
return slice
}