123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package util
- import (
- "math/rand"
- "time"
- "unicode/utf8"
- "unsafe"
- )
- func StrLen(s string) int {
- return utf8.RuneCountInString(s)
- }
- func StrMax(s string, max int) bool {
- n := utf8.RuneCountInString(s)
- return n <= max
- }
- func StrMin(s string, min int) bool {
- n := utf8.RuneCountInString(s)
- return n >= min
- }
- func StrRange(s string, min, max int) bool {
- n := utf8.RuneCountInString(s)
- if n <= max && n >= min {
- return true
- }
- return false
- }
- func Random(n int) string {
- str := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
- bytes := []byte(str)
- result := []byte{}
- r := rand.New(rand.NewSource(time.Now().UnixNano()))
- n1 := len(bytes)
- for i := 0; i < n; i++ {
- result = append(result, bytes[r.Intn(n1)])
- }
- return string(result)
- }
- func StringToBytes(s string) []byte {
- return *(*[]byte)(unsafe.Pointer(
- &struct {
- string
- Cap int
- }{s, len(s)},
- ))
- }
- func BytesToString(b []byte) string {
- return *(*string)(unsafe.Pointer(&b))
- }
|