36 lines
680 B
Go
36 lines
680 B
Go
package util
|
|
|
|
import "strings"
|
|
|
|
type (
|
|
// 可取长度类型
|
|
LenAble interface{ string | []any | chan any }
|
|
)
|
|
|
|
// 计算切片元素总长度
|
|
/*
|
|
传入字符串切片, 返回其所有元素长度之和
|
|
e.g. LenArray({`ele3`,`ele2`,`ele1`}) => 12
|
|
*/
|
|
func LenArray[T LenAble](a []T) int {
|
|
var o int
|
|
for i, r := 0, len(a); i < r; i++ {
|
|
o += len(a[i])
|
|
}
|
|
return o
|
|
}
|
|
|
|
// 字符串快速拼接
|
|
/*
|
|
传入多个字符串参数, 返回拼接后的结果
|
|
e.g: StrConcat("str1", "str2", "str3") => "str1str2str3"
|
|
*/
|
|
func StrConcat(a ...string) string {
|
|
var b strings.Builder
|
|
b.Grow(LenArray(a))
|
|
for i, r := 0, len(a); i < r; i++ {
|
|
b.WriteString(a[i])
|
|
}
|
|
return b.String()
|
|
}
|