/*
* @Description:常用工具
* @Author: Casso-Wong
*/
package tool
import (
"fmt"
"os"
"time"
)
// ParseSlicess 字符串切片去重
func ParseSlicess(slc []string) []string {
var res []string
temMap := make(map[string]bool, len(slc))
for _, v := range slc {
if temMap[v] == false {
temMap[v] = true
res = append(res, v)
}
}
return res
}
// DeledeSlice 根據(jù)傳入string刪除相同的切片元素: 我的應(yīng)用場(chǎng)景是知道切片中必然有且僅有一個(gè)相同的元素,想刪掉
func DeledeSlice(slc []string, target string) []string {
var index = 0
for i, v := range slc {
if v == target {
index = i
break
}
}
// ["aa","bb","cc"] 例: index = 2 則: 會(huì)超出下標(biāo)界限
if index == len(slc)-1 && len(slc) != 0 { // 刪除最后一項(xiàng)
slc = slc[:index] // 左包含,右不包含
} else {
slc = append(slc[:index], slc[index+1:]...) // 左包含,右不包含
}
return slc
}
// StartToday 返回當(dāng)天零點(diǎn)
func StartToday() time.Time {
t := time.Now()
tm1 := time.Date(t.Year(), t.Month(), t.Day()-1, 0, 0, 0, 0, t.Location())
tm2 := tm1.AddDate(0, 0, 1)
return tm2
}
//PathExists 判斷文件夾是否存在 不存在則創(chuàng)建
func PathExists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil {
return true, nil
}
if os.IsNotExist(err) {
// 創(chuàng)建文件夾
err := os.MkdirAll(path, os.ModePerm)
if err != nil {
fmt.Printf("mkdir failed![%v]\n", err)
} else {
return true, nil
}
}
return false, err
}
// TurnToSlice 將切片轉(zhuǎn)為特定字符串隔開的字符串(為了存入數(shù)據(jù)庫(kù)..我也是福了)
func TurnToSlice(s []string, slc string) (res string) { // 效果類似 : 1,2,3,4 || 1:2:3:4
for i, v := range s {
if i != len(s)-1 {
res += v + slc
} else {
res += v
}
}
return
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。