Browse Source

fix return

ls 1 year ago
parent
commit
9d4d620efb
1 changed files with 18 additions and 8 deletions
  1. 18 8
      util/string.go

+ 18 - 8
util/string.go

@@ -4,6 +4,7 @@ import (
 	"math/rand"
 	"time"
 	"unicode/utf8"
+	"unsafe"
 )
 
 // StrLen utf8 string length
@@ -14,19 +15,13 @@ func StrLen(s string) int {
 // StrMax verify string's max lenth
 func StrMax(s string, max int) bool {
 	n := utf8.RuneCountInString(s)
-	if n <= max {
-		return true
-	}
-	return false
+	return n <= max
 }
 
 // StrMin verify string's min lenth
 func StrMin(s string, min int) bool {
 	n := utf8.RuneCountInString(s)
-	if n >= min {
-		return true
-	}
-	return false
+	return n >= min
 }
 
 // StrRange verify string's Range lenth
@@ -51,3 +46,18 @@ func Random(n int) string {
 	}
 	return string(result)
 }
+
+// StringToBytes converts string to byte slice without a memory allocation.
+func StringToBytes(s string) []byte {
+	return *(*[]byte)(unsafe.Pointer(
+		&struct {
+			string
+			Cap int
+		}{s, len(s)},
+	))
+}
+
+// BytesToString converts byte slice to string without a memory allocation.
+func BytesToString(b []byte) string {
+	return *(*string)(unsafe.Pointer(&b))
+}