1 Star 0 Fork 0

坐公交也用券 / gbm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Slice.go 3.31 KB
一键复制 编辑 原始数据 按行查看 历史
loven 提交于 2023-08-10 16:15 . 增加切片元素去重
package gbm
import (
"fmt"
"reflect"
"strings"
"sort"
"github.com/spf13/cast"
)
// SliceToString 字符串列表转字符串(seq: 拼接符,可以用: 空格 / _ @ 之类,具体请以实际需求设置)
func SliceToString(ls []string, sep string) string {
var result string
for index, i := range ls {
if index == 0 {
result = cast.ToString(i)
} else {
result = result + sep + cast.ToString(i)
}
}
return result
}
// SliceToSlice 将切片元素切割整合到一个切片中
func SliceToSlice(text []string, sep string) []string {
var result []string
if len(text) > 0 {
for _, s := range text {
tmp := strings.Split(s, sep)
if len(tmp) > 1 {
result = append(result, tmp...) // 在切片尾部添加元素
} else {
result = append(result, s) // 在切片尾部添加元素
}
}
return result
}
return text
}
// SliceSort 对切片进行排序
func SliceSort(ls []string) {
sort.Strings(ls)
}
// SliceRemoveNull 移除空的数组元素
func SliceRemoveNull(l []string) []string {
var tmp []string
for _, value := range l {
if value == "" || value == " " || len(value) == 0 {
continue
}
tmp = append(tmp, value)
}
return tmp
}
// SliceMerge 合并两个切片
func SliceMerge(l, r []string) []string {
tmp := append(l, r...)
return tmp
}
// SliceReplace 替换切片中的元素
func SliceReplace(l, r []string, replace string) []string {
var tmp []string
for _, value := range l {
if value == replace {
tmp = append(tmp, r...)
} else {
tmp = append(tmp, value)
}
}
return tmp
}
// SliceRemove 移除切片中的元素
func SliceRemove(l, remove []string) []string {
var tmp []string
for _, value := range l {
if !(value == "" || value == " " || value == " ") {
tmp = append(tmp, value)
}
}
return tmp
}
// SliceRemoveValue 移除指定元素
func SliceRemoveValue(l []string, values string) []string {
for index, value := range l {
if value == values {
// 删除字符数量0的元素
l = append(l[:index], l[index+1:]...)
}
}
return l
}
// SliceRemoveIndex 通过索引值移除指定元素
func SliceRemoveIndex(l []string, index int) ([]string, error) {
if len(l) > index {
l = append(l[:index], l[index+1:]...)
return l, nil
}
fmt.Println(len(l))
fmt.Println(index)
return l, fmt.Errorf("索引值大于实际值")
}
// SliceInAny 判断一个元素是否存在于一个切片中
func SliceInAny(v any, s []any) bool {
for i := 0; i < len(s); i++ {
if reflect.DeepEqual(s[i], v) {
return true
}
}
return false
}
// SliceInInt 判断一个元素是否存在于一个切片中
func SliceInInt(v int, s []int) bool {
for i := 0; i < len(s); i++ {
if reflect.DeepEqual(s[i], v) {
return true
}
}
return false
}
// SliceInStr 判断一个元素是否存在于一个切片中
func SliceInStr(v string, s []string) bool {
for i := 0; i < len(s); i++ {
if reflect.DeepEqual(s[i], v) {
return true
}
}
return false
}
// SliceInByte 判断一个元素是否存在于一个切片中
func SliceInByte(v byte, s []byte) bool {
for i := 0; i < len(s); i++ {
if reflect.DeepEqual(s[i], v) {
return true
}
}
return false
}
// SliceStrReduction 对切片进行去重操作
func SliceStrReduction(s []string) []string {
var tmp []string
for _, v := range s {
if !SliceInStr(v, tmp) {
tmp = append(tmp, v)
}
}
return tmp
}
Go
1
https://gitee.com/liumou_site/gbm.git
git@gitee.com:liumou_site/gbm.git
liumou_site
gbm
gbm
v1.1.6

搜索帮助