feat(Go-Tool):2020/11/16:新增项目案例(按照一定规则对一组数据进行排序分组)

This commit is contained in:
Huangzj
2020-11-16 18:09:28 +08:00
parent 2ac2b2666f
commit 179e5f6a31
10 changed files with 888 additions and 13 deletions
+33
View File
@@ -0,0 +1,33 @@
/*
* @Author : huangzj
* @Time : 2020/11/13 9:34
* @Description
*/
package jsonEnhance
import (
"github.com/json-iterator/go"
)
var (
//config 默认配置
config = jsoniter.ConfigFastest
)
func MarshalToString(v interface{}) string {
s, err := config.MarshalToString(v)
if err != nil {
panic(err)
}
return s
}
//UnmarshalFromString 直接从字符串反序列化
func UnmarshalFromString(str string, v interface{}) {
err := config.UnmarshalFromString(str, v)
if err != nil {
panic(err)
}
}
+15 -2
View File
@@ -29,8 +29,21 @@ func Test(t *testing.T) {
//Combine(query) //组合两个数组的两种方式
//fmt.Println(fmt.Sprintf("跳过三个元素,返回的数组中包含%d个元素", len(query.Skip(3).Results())))
//fmt.Println(fmt.Sprintf("跳过发布时间在2020.1.1之前的元素,返回的数组中包含%d个元素", len(query.SkipWhile(PublishTimeBeforeFunc).Results())))
fmt.Println(fmt.Sprintf("跳过三个元素,返回的数组中包含%d个元素", len(query.Skip(3).Results())))
fmt.Println(fmt.Sprintf("跳过发布时间在2020.1.1之前的元素,返回的数组中包含%d个元素", len(query.SkipWhile(PublishTimeBeforeFunc).Results()))) //这个方法好像有问题,没办法过滤
author := make([]string, 0)
query.Select(func(book interface{}) interface{} {
return book.(Book).Author
}).ToSlice(&author)
fmt.Println(author)
query1 := linq.From([][]Book{bookList, bookList})
query1.SelectMany(func(query interface{}) linq.Query {
fmt.Println(query)
return linq.From(query)
}).Select(func(book interface{}) interface{} {
return book.(Book).Author
}).ToSlice(&author)
fmt.Println(author)
//Contains(query) //判断数组中是否包含某个元素
//query.CountWith()