Element returns a random element of the slice. An error will be returned if the slice has no elements in it.
(s []T)
| 7 | // Element returns a random element of the slice. An error will be returned if |
| 8 | // the slice has no elements in it. |
| 9 | func Element[T any](s []T) (out T, err error) { |
| 10 | if len(s) == 0 { |
| 11 | return out, xerrors.New("slice must have at least one element") |
| 12 | } |
| 13 | |
| 14 | i, err := Intn(len(s)) |
| 15 | if err != nil { |
| 16 | return out, xerrors.Errorf("generate random integer from 0-%v: %w", len(s), err) |
| 17 | } |
| 18 | |
| 19 | return s[i], nil |
| 20 | } |