94 lines
1.8 KiB
Go
94 lines
1.8 KiB
Go
package tools
|
||
|
||
import (
|
||
"log"
|
||
"os"
|
||
"sort"
|
||
)
|
||
|
||
//去除两个切片中的重复值
|
||
|
||
func ExcludeSlice(slice1, slice2 []string) []string {
|
||
// 创建一个map,用于存储slice1中的所有元素
|
||
elementsInSlice1 := make(map[string]bool)
|
||
for _, v := range slice1 {
|
||
elementsInSlice1[v] = true
|
||
}
|
||
|
||
// 创建一个新的切片,用于存放结果
|
||
var result []string
|
||
for _, v := range slice2 {
|
||
// 如果元素不在slice1中,则添加到结果切片中
|
||
if _, exists := elementsInSlice1[v]; !exists {
|
||
result = append(result, v)
|
||
}
|
||
}
|
||
|
||
return result
|
||
}
|
||
|
||
//反转切片
|
||
|
||
func ReverseSlice(s []string) []string {
|
||
length := len(s)
|
||
reversed := make([]string, length)
|
||
for i, v := range s {
|
||
reversed[length-i-1] = v
|
||
}
|
||
return reversed
|
||
}
|
||
|
||
//去掉切片中的空字符串
|
||
|
||
func RemoveEmptyStrings(s []string) []string {
|
||
var nonEmptyStrings []string
|
||
for _, str := range s {
|
||
if str != "" {
|
||
nonEmptyStrings = append(nonEmptyStrings, str)
|
||
}
|
||
}
|
||
return nonEmptyStrings
|
||
}
|
||
|
||
//slice每个元素中的换行符去掉
|
||
|
||
func RemoveNewlineElements(slice []string) []string {
|
||
var cleanSlice []string
|
||
for _, s := range slice {
|
||
if s != "\n" && s != "" {
|
||
cleanSlice = append(cleanSlice, s)
|
||
}
|
||
}
|
||
return cleanSlice
|
||
}
|
||
|
||
//slice每个元素中添加一个换行符
|
||
|
||
func AddNewlineToEachElement(slice []string) []string {
|
||
var newSlice []string
|
||
for _, s := range slice {
|
||
newSlice = append(newSlice, s+"\n")
|
||
}
|
||
return newSlice
|
||
}
|
||
|
||
//文件名排序
|
||
|
||
func ReadFilename(directory string) string {
|
||
entries, err := os.ReadDir(directory)
|
||
if err != nil {
|
||
log.Printf("读取目录失败,错误是:%v", err)
|
||
return ""
|
||
}
|
||
var s []string
|
||
// 遍历目录条目并打印文件名
|
||
for _, entry := range entries {
|
||
// 使用entry.Name()获取文件名
|
||
s = append(s, entry.Name())
|
||
}
|
||
sort.Strings(s)
|
||
readyToDelete := s[0]
|
||
return readyToDelete
|
||
|
||
}
|