stdlib |
g |
|---|---|
| ```go func main() { const charset = "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" length := 10 b := make([]byte, length) if _, err := rand.Read(b); err != nil { return } for i, v := range b { b[i] = charset[v%byte(len(charset))] } result := string(b) fmt.Println(result) } ``` | ```go func main() { result := g.NewString().Random(10) fmt.Println(result) } ``` |
stdlib |
g |
|---|---|
| ```go func main() { md := make(map[int][]int) for i := range 5 { md[i] = append(md[i], i) } fmt.Println(md) } ``` | ```go func main() { md := g.NewMap[int, g.Slice[int]]() for i := range 5 { md.Set(i, md.Get(i).UnwrapOrDefault().Append(i)) } // or for i := range 5 { entry := md.Entry(i) entry.OrDefault() // Insert an empty slice if missing entry.Transform( func(s Slice[int]) Slice[int] { return s.Append(i) // Append the current index to the slice }) } fmt.Println(md) } ``` |
stdlib |
g |
|---|---|
| ```go func copyDir(src, dest string) error { return filepath.Walk(src, func(path string, info fs.FileInfo, err error, ) error { if err != nil { return err } relPath, err := filepath.Rel(src, path) if err != nil { return err } destPath := filepath.Join(dest, relPath) if info.IsDir() { return os.MkdirAll(destPath, info.Mode()) } return copyFile(path, destPath, info.Mode()) }) } func copyFile(src, dest string, mode fs.FileMode) error { srcFile, err := os.Open(src) if err != nil { return err } defer srcFile.Close() destFile, err := os.OpenFile(dest, os.O_CREATE|os.O_WRONLY, mode) if err != nil { return err } defer destFile.Close() _, err = io.Copy(destFile, srcFile) return err } func main() { src := "path/to/source/directory" dest := "path/to/destination/directory" err := copyDir(src, dest) if err != nil { fmt.Println("Error copying directory:", err) } else { fmt.Println("Directory copied successfully") } } ``` | ```go func main() { g.NewDir(".").Copy("copy").Unwrap() } ``` |
stdlib |
g |
|---|---|
| ```go func RandomSample(slice []int, amount int) []int { if amount > len(slice) { amount = len(slice) } samples := make([]int, amount) for i := 0; i < amount; i++ { index, _ := rand.Int(rand.Reader, big.NewInt(int64(len(slice)))) samples[i] = slice[index.Int64()] slice = append(slice[:index.Int64()], slice[index.Int64()+1:]...) } return samples } func main() { slice := []int{1, 2, 3, 4, 5, 6} samples := RandomSample(slice, 3) fmt.Println(samples) } ``` | ```go func main() { slice := g.SliceOf(1, 2, 3, 4, 5, 6) samples := slice.RandomSample(3) fmt.Println(samples) } ``` |