bytes.go 754 B

12345678910111213141516171819202122232425262728293031
  1. package yu_rand
  2. // Bytes
  3. //
  4. // @Description: 用于生成指定长度的随机byte切片
  5. func Bytes[T int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | int | uint | uintptr](len T) []byte {
  6. if len < 0 {
  7. panic("len必须为非负数")
  8. }
  9. bytes := make([]byte, len)
  10. var i T
  11. for ; i < len; i++ {
  12. bytes[i] = byte(Uint32())
  13. }
  14. return bytes
  15. }
  16. // BytesEx
  17. //
  18. // @Description: 用于生成指定长度和字符集的随机byte切片
  19. func BytesEx[T int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | int | uint | uintptr](len T, n byte, base byte) []byte {
  20. if len < 0 {
  21. panic("len必须为非负数")
  22. }
  23. bytes := make([]byte, len)
  24. var i T
  25. for ; i < len; i++ {
  26. bytes[i] = byte(Uint32())%n + base
  27. }
  28. return bytes
  29. }