一個簡單易用高效的工具庫
tools,包括多個好用的包,其中的query包用法如下:
query
// User User
type User struct {
UserID int
Age int
Name string
CreateTime time.Time
}
// Admin Admin
type Admin struct {
AdminID int
Level int
}
// AdminUser AdminUser
type AdminUser struct {
AdminID int
Level int
Age int
Name string
CreateTime time.Time
}
// Department Department
type Department struct {
DepartmentID int
Name string
Employees []User
}
// Sex Sex
type Sex struct {
IsMale bool
}
var users = make([]User, 1000, 1000)
var admins = make([]Admin, 1000, 1000)
// 獲取指定列
result := query.Column(users, "UserID")
userIDs := result.([]int)
// 以某列做對映
result = query.ColumnMap(users, "UserID")
userMap := result.(map[int]User)
// 結合
result = query.Combine(admins, users, func(admin Admin, user User) AdminUser {
return AdminUser{
AdminID: admin.AdminID,
Level: admin.Level,
Name: user.Name,
CreateTime: user.CreateTime,
}
})
combine := result.([]AdminUser)
// 分組
result = query.Group(users, "UserID", func(users []User) Department {
return Department{
Employees: users,
}
})
group := result.([]Department)
// 連線
result = query.LeftJoin(admins, users, "AdminID = UserID", func(admin Admin, user User) AdminUser {
return AdminUser{
AdminID: admin.AdminID,
Level: admin.Level,
Name: user.Name,
CreateTime: user.CreateTime,
}
})
join := result.([]AdminUser)
// 選擇
result = query.Select(users, func(a User) Sex {
if len(a.Name) >= 3 && a.Name[0:3] == "Man" {
return Sex{IsMale: true}
}
return Sex{IsMale: false}
})
sel := result.([]Sex)
// 排序
result = query.Sort(users, "UserID asc")
sort := result.([]User)
// 條件
result = query.Where(users, func(a User) bool {
if len(a.Name) >= 3 && a.Name[0:3] == "Man" {
return true
}
return false
})
where := result.([]User)
相關文章
- 一個.Net簡單、易用的配置檔案操作庫
- gorpc: 一個簡單,易用,高效能,可插拔的微服務框架GoRPC微服務框架
- 一個簡單易用的資料庫壞塊處理方案資料庫
- 簡單易用且全面的JavaScript日期工具類庫JavaScript
- C# 編寫一個簡單易用的 Windows 截圖增強工具C#Windows
- 如何實現一個簡單易用的 RocketMQ SDKMQ
- yiigo - 簡單易用的 Golang 輔助庫Golang
- 「Go工具箱」一個簡單、易用的多錯誤管理包:go-multierrorGoError
- 嘗試做一個.NET簡單、高效、避免OOM的Excel工具OOMExcel
- 簡單又好用的高效工具
- 簡單的js工具庫JS
- 基於 electron 實現簡單易用的抓包、mock 工具Mock
- 簡單易用的二維碼掃描工具:QR Capture for MacAPTMac
- Laravel 一個簡單的除錯工具Laravel除錯
- 是一個簡單易用的生活物聯網和智慧家居平臺
- 一個簡單多庫配置
- 開發一個簡單的工具,匯出github倉庫所有issue列表Github
- 一個簡單前端工具集-yanjs前端JS
- 一個簡單易用的樹外掛,支援非同步載入子節點非同步
- 一個非常簡單易用且功能豐富的純Swift下載框架-TiercelSwift框架
- D2 Crud,一款簡單易用的表格元件元件
- 一個簡單好用的java增量更新工具Java
- 用Python做一個簡單的翻譯工具Python
- 簡單易用的前端模擬資料前端
- Iris for Mac:簡單易用的錄屏神器Mac
- 簡單易用的任務佇列-beanstalkd佇列Bean
- 簡單易用的macOS音量應用程式Mac
- 分享5款簡單而高效的小工具
- React實現簡單易用ToastReactAST
- 一個簡單快速的OCR表單識別錄入工具
- 帶你實現一個簡單的MYSQL資料庫生成實體類工具MySql資料庫
- 一個簡單的人臉識別庫
- 一個簡單易用的webpack4多頁面腳手架配置加學習Web
- iOS-簡單易用的GCD計時器iOSGC
- 零基礎簡單易用的EmberJS框架JS框架
- electron寫一個簡單host切換工具
- 使用JavaScript手寫一個簡單的快捷鍵庫JavaScript
- 寫一個簡單易用可擴充套件vue表單驗證外掛(vue-validate-easy)套件Vue