// Package wrapper ... // // Description : wrapper ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-06-11 21:02 package wrapper import ( "encoding/json" "strings" ) // Array 数组实例 // // Author : go_developer@163.com<白茶清欢> // // Date : 21:03 2023/6/11 func Array(value interface{}) *ArrayType { return &ArrayType{ value: value, } } // ArrayType ... // // Author : go_developer@163.com<白茶清欢> // // Date : 21:05 2023/6/11 type ArrayType struct { value interface{} } // IsNil 输入是否为nil // // Author : go_developer@163.com<白茶清欢> // // Date : 21:11 2023/6/11 func (at *ArrayType) IsNil() bool { return at.value == nil } // IsValid 检测是否为数组类型 // // Author : go_developer@163.com<白茶清欢> // // Date : 21:06 2023/6/11 func (at *ArrayType) IsValid() bool { if at.IsNil() { return false } byteData, err := json.Marshal(at.value) if nil != err { return false } return strings.HasPrefix(string(byteData), "[") && strings.HasSuffix(string(byteData), "]") } // ItemIsInterface 数组每一项是否为interface // // Author : go_developer@163.com<白茶清欢> // // Date : 21:20 2023/6/11 func (at *ArrayType) ItemIsInterface() bool { if !at.IsValid() { return false } if _, ok := at.value.([]interface{}); ok { return true } return false }