一個簡單易用高效的工具庫
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簡單、易用的配置檔案操作庫
- Goutte 一個簡單易用的 PHP 爬蟲類庫GoPHP爬蟲
- gorpc: 一個簡單,易用,高效能,可插拔的微服務框架GoRPC微服務框架
- 一個簡單易用的資料庫壞塊處理方案資料庫
- 一個簡單易用的 Vue 元件 V - DistpickerVue元件
- 簡單易用且全面的JavaScript日期工具類庫JavaScript
- C# 編寫一個簡單易用的 Windows 截圖增強工具C#Windows
- 如何實現一個簡單易用的 RocketMQ SDKMQ
- 一個簡單易用的資料庫客戶端ajfdbviewer1.0資料庫客戶端View
- 一個簡單易用的 Android 導航欄TitleBarAndroid
- 嘗試做一個.NET簡單、高效、避免OOM的Excel工具OOMExcel
- 「Go工具箱」一個簡單、易用的多錯誤管理包:go-multierrorGoError
- yiigo - 簡單易用的 Golang 輔助庫Golang
- 一個簡單且靈活易用的 React 格式化和 i18n 工具React
- 簡單又好用的高效工具
- Android 一起來封裝一個簡單易用的AdapterAndroid封裝APT
- 用Golang寫了個簡單易用的微信SDKGolang
- 基於 electron 實現簡單易用的抓包、mock 工具Mock
- 簡單易用的二維碼掃描工具:QR Capture for MacAPTMac
- Laravel 一個簡單的除錯工具Laravel除錯
- 一個簡單的圖片水印工具
- 一個簡單的驗證碼工具
- 簡單的js工具庫JS
- 是一個簡單易用的生活物聯網和智慧家居平臺
- 一個簡單多庫配置
- 實現一個簡單的 dd 庫
- EasyDataKit 簡單易用的 SQLite 輪子SQLite
- 一個簡單易用的樹外掛,支援非同步載入子節點非同步
- 一個非常簡單易用且功能豐富的純Swift下載框架-TiercelSwift框架
- 開發一個簡單的工具,匯出github倉庫所有issue列表Github
- D2 Crud,一款簡單易用的表格元件元件
- 簡單易用的前端模擬資料前端
- 簡單易用的任務佇列-beanstalkd佇列Bean
- 簡單易用的macOS音量應用程式Mac
- Iris for Mac:簡單易用的錄屏神器Mac
- React實現簡單易用ToastReactAST
- 一個簡單好用的java增量更新工具Java
- 一個簡單前端工具集-yanjs前端JS