package util import ( "io" "math/rand" "os" "time" ) // Return a slice of range [0, n) func Range(n int) []int { s := make([]int, n) for i := 0; i < n; i++ { s[i] = i } return s } func ShuffleSlice(a []int) { rand.Seed(time.Now().UnixNano()) rand.Shuffle(len(a), func(i, j int) { a[i], a[j] = a[j], a[i] }) } func CopyFile(srcPath, dstPath string) error { fin, err := os.Open(srcPath) if err != nil { return err } defer fin.Close() fout, err := os.Create(dstPath) if err != nil { return err } defer fout.Close() _, err = io.Copy(fout, fin) return err }