refactor: openpitrix module
Signed-off-by: hongming <talonwan@yunify.com>
This commit is contained in:
68
vendor/openpitrix.io/openpitrix/pkg/util/stringutil/string.go
generated
vendored
Normal file
68
vendor/openpitrix.io/openpitrix/pkg/util/stringutil/string.go
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
// Copyright 2018 The OpenPitrix Authors. All rights reserved.
|
||||
// Use of this source code is governed by a Apache license
|
||||
// that can be found in the LICENSE file.
|
||||
|
||||
package stringutil
|
||||
|
||||
import (
|
||||
"unicode/utf8"
|
||||
|
||||
"github.com/asaskevich/govalidator"
|
||||
)
|
||||
|
||||
// Creates an slice of slice values not included in the other given slice.
|
||||
func Diff(base, exclude []string) (result []string) {
|
||||
excludeMap := make(map[string]bool)
|
||||
for _, s := range exclude {
|
||||
excludeMap[s] = true
|
||||
}
|
||||
for _, s := range base {
|
||||
if !excludeMap[s] {
|
||||
result = append(result, s)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func Unique(ss []string) (result []string) {
|
||||
smap := make(map[string]bool)
|
||||
for _, s := range ss {
|
||||
smap[s] = true
|
||||
}
|
||||
for s := range smap {
|
||||
result = append(result, s)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func CamelCaseToUnderscore(str string) string {
|
||||
return govalidator.CamelCaseToUnderscore(str)
|
||||
}
|
||||
|
||||
func UnderscoreToCamelCase(str string) string {
|
||||
return govalidator.UnderscoreToCamelCase(str)
|
||||
}
|
||||
|
||||
func FindString(array []string, str string) int {
|
||||
for index, s := range array {
|
||||
if str == s {
|
||||
return index
|
||||
}
|
||||
}
|
||||
return -1
|
||||
}
|
||||
|
||||
func StringIn(str string, array []string) bool {
|
||||
return FindString(array, str) > -1
|
||||
}
|
||||
|
||||
func Reverse(s string) string {
|
||||
size := len(s)
|
||||
buf := make([]byte, size)
|
||||
for start := 0; start < size; {
|
||||
r, n := utf8.DecodeRuneInString(s[start:])
|
||||
start += n
|
||||
utf8.EncodeRune(buf[size-start:], r)
|
||||
}
|
||||
return string(buf)
|
||||
}
|
||||
Reference in New Issue
Block a user