From 97afbebbe0dd07bb3d322cdc192c3738f6a467c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Mon, 13 Oct 2025 23:12:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7op=5Farray?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- op_array/array.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/op_array/array.go b/op_array/array.go index 0e95d78..02b8843 100644 --- a/op_array/array.go +++ b/op_array/array.go @@ -34,14 +34,14 @@ type Array[Bt op_type.BaseType] struct { } // IsNil 输入是否为nil -func IsNil[BaseType op_type.BaseType](arr Array[BaseType]) bool { - return arr.value == nil +func (a *Array[Bt]) IsNil() bool { + return a.value == nil } // ToStringSlice ... -func ToStringSlice[BaseType op_type.BaseType](arr Array[BaseType]) []string { +func (a *Array[Bt]) ToStringSlice() []string { list := make([]string, 0) - for _, item := range arr.value { + for _, item := range a.value { str := op_any.AnyDataType(item).ToString() list = append(list, str) } @@ -49,8 +49,8 @@ func ToStringSlice[BaseType op_type.BaseType](arr Array[BaseType]) []string { } // Unique 对数据结果进行去重 -func Unique[BaseType op_type.BaseType](arr Array[BaseType]) []BaseType { - result := make([]BaseType, 0) +func (a *Array[Bt]) Unique(arr Array[Bt]) []Bt { + result := make([]Bt, 0) dataTable := make(map[string]bool) for _, item := range arr.value { @@ -70,7 +70,7 @@ func Unique[BaseType op_type.BaseType](arr Array[BaseType]) []BaseType { } // Has 查询一个值是否在列表里, 在的话, 返回首次出现的索引, 不在返回-1 -func Has[BaseType op_type.BaseType](arr Array[BaseType], input BaseType) int { +func (a *Array[Bt]) Has(arr Array[Bt], input Bt) int { for idx := 0; idx < len(arr.value); idx++ { if reflect.TypeOf(arr.value[idx]).String() != reflect.TypeOf(input).String() { // 类型不同 @@ -87,14 +87,14 @@ func Has[BaseType op_type.BaseType](arr Array[BaseType], input BaseType) int { } // ToString ... -func ToString[BaseType op_type.BaseType](arr Array[BaseType]) define.BaseValueResult[string] { - if IsNil(arr) { +func (a *Array[Bt]) ToString() define.BaseValueResult[string] { + if a.IsNil() { return define.BaseValueResult[string]{ Value: "", Err: nil, } } - byteData, err := json.Marshal(arr.value) + byteData, err := json.Marshal(a.value) return define.BaseValueResult[string]{ Value: string(byteData), Err: err, @@ -102,25 +102,25 @@ func ToString[BaseType op_type.BaseType](arr Array[BaseType]) define.BaseValueRe } // ToStringWithSplit 数组按照指定分隔符转为字符串 -func ToStringWithSplit[BaseType op_type.BaseType](arr Array[BaseType], split string) define.BaseValueResult[string] { - if IsNil(arr) { +func (a *Array[Bt]) ToStringWithSplit(arr Array[Bt], split string) define.BaseValueResult[string] { + if a.IsNil() { return define.BaseValueResult[string]{ Value: "", Err: nil, } } return define.BaseValueResult[string]{ - Value: strings.Join(ToStringSlice(arr), split), + Value: strings.Join(a.ToStringSlice(), split), Err: nil, } } // ExtraField 提取[]map/[]struct 中的指定字段, 并以list形式返回 -func ExtraField[BaseType op_type.BaseType](arr Array[BaseType], fieldName string) string { - if IsNil(arr) { +func (a *Array[Bt]) ExtraField(fieldName string) string { + if a.IsNil() { return "[]" } - byteData, _ := json.Marshal(arr.value) + byteData, _ := json.Marshal(a.value) res := make([]any, 0) list := gjson.ParseBytes(byteData).Array() for _, item := range list { @@ -129,5 +129,5 @@ func ExtraField[BaseType op_type.BaseType](arr Array[BaseType], fieldName string res = append(res, itemValue.Value()) } } - return ToString(arr).Value + return a.ToString().Value }