mirror of
https://github.com/pyihe/go-pkg.git
synced 2025-09-26 20:11:21 +08:00
fix(bytes, strings):
fix Remove, RemoveAll
This commit is contained in:
@@ -22,8 +22,8 @@ func String(b []byte) string {
|
||||
return *(*string)(unsafe.Pointer(&b))
|
||||
}
|
||||
|
||||
// BytesEqual 判断两个字节切片每个元素是否相等
|
||||
func BytesEqual(a, b []byte) bool {
|
||||
// Equal 判断两个字节切片每个元素是否相等
|
||||
func Equal(a, b []byte) bool {
|
||||
aLen, bLen := len(a), len(b)
|
||||
if aLen != bLen {
|
||||
return false
|
||||
@@ -61,12 +61,34 @@ func Reverse(b []byte) {
|
||||
}
|
||||
}
|
||||
|
||||
// Remove 从b中删除ele
|
||||
func Remove(b []byte, ele byte) {
|
||||
for i := range b {
|
||||
if ele == b[i] {
|
||||
b = append(b[:i], b[i+1:]...)
|
||||
break
|
||||
// Remove 对于eles的每个元素,只删除一次
|
||||
func Remove(b *[]byte, eles ...byte) {
|
||||
if b == nil || len(*b) == 0 {
|
||||
return
|
||||
}
|
||||
for _, e := range eles {
|
||||
for i := 0; i < len(*b); {
|
||||
if e == (*b)[i] {
|
||||
copy((*b)[i:], (*b)[i+1:])
|
||||
(*b)[len(*b)-1] = 0
|
||||
*b = (*b)[:len(*b)-1]
|
||||
break
|
||||
} else {
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// RemoveAll 删除所有的ele
|
||||
func RemoveAll(b *[]byte, eles ...byte) {
|
||||
for _, e := range eles {
|
||||
for i := 0; i < len(*b); {
|
||||
if (*b)[i] == e {
|
||||
*b = append((*b)[:i], (*b)[i+1:]...)
|
||||
} else {
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,10 @@
|
||||
package files
|
||||
|
||||
import "os"
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
)
|
||||
|
||||
// NewPath 判断目录是否存在,如果不存在,则新建一个目录
|
||||
func NewPath(targetPath string) error {
|
||||
@@ -14,3 +18,13 @@ func NewPath(targetPath string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// LoadJSONFile 加载JSON文件
|
||||
func LoadJSONFile(file string, dst interface{}) error {
|
||||
content, err := ioutil.ReadFile(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = json.Unmarshal(content, dst)
|
||||
return err
|
||||
}
|
||||
|
1
go.mod
1
go.mod
@@ -13,4 +13,5 @@ require (
|
||||
github.com/vmihailenco/msgpack/v5 v5.3.4 // indirect
|
||||
go.uber.org/zap v1.18.1 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect
|
||||
gopkg.in/ini.v1 v1.66.4 // indirect
|
||||
)
|
||||
|
2
go.sum
2
go.sum
@@ -63,6 +63,8 @@ google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/l
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
|
||||
gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
@@ -82,8 +82,8 @@ func IsEmpty(s string) bool {
|
||||
return s == ""
|
||||
}
|
||||
|
||||
// SliceEqual 判断两个字符串切片值是否相等
|
||||
func SliceEqual(a, b []string) bool {
|
||||
// Equal 判断两个字符串切片值是否相等
|
||||
func Equal(a, b []string) bool {
|
||||
aLen, bLen := len(a), len(b)
|
||||
if aLen != bLen {
|
||||
return false
|
||||
@@ -122,11 +122,35 @@ func Reverse(s []string) {
|
||||
}
|
||||
|
||||
// Remove 从s中删除第一个ele
|
||||
func Remove(ele string, s []string) {
|
||||
for i := range s {
|
||||
if s[i] == ele {
|
||||
s = append(s[:i], s[i+1:]...)
|
||||
break
|
||||
func Remove(s *[]string, eles ...string) {
|
||||
if s == nil || len(*s) == 0 {
|
||||
return
|
||||
}
|
||||
for _, e := range eles {
|
||||
for i := 0; i < len(*s); {
|
||||
if e == (*s)[i] {
|
||||
copy((*s)[i:], (*s)[i+1:])
|
||||
(*s)[len(*s)-1] = ""
|
||||
*s = (*s)[:len(*s)-1]
|
||||
break
|
||||
} else {
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// RemoveAll 删除所有的eles
|
||||
func RemoveAll(s *[]string, eles ...string) {
|
||||
for _, e := range eles {
|
||||
for i := 0; i < len(*s); {
|
||||
if (*s)[i] == e {
|
||||
copy((*s)[i:], (*s)[i+1:])
|
||||
(*s)[len(*s)-1] = ""
|
||||
*s = (*s)[:len(*s)-1]
|
||||
} else {
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user