分頁是項目的一些關鍵點,每個語言都有它不同的寫法,那么在golang中如何實現呢??
實現技巧:golang一般都把這種在項目常用到的都划分成工具函數,當你想用到的時候,直接調用工具函數就可以達到想要的效果。
實現代碼:
package util
import (
"fmt"
"github.com/gin-gonic/gin"
"strconv"
)
// Pagination is page util
func Pagination(ctx *gin.Context) (pageStr string, num int, err error) {
limit := ctx.DefaultQuery("page_size", "8")
pageNumber := ctx.DefaultQuery("page_number", "1")
limitInt, err := strconv.Atoi(limit)
if err != nil || limitInt < 0 {
return "", 0, err
}
pageNumberInt, err := strconv.Atoi(pageNumber)
if err != nil || pageNumberInt < 0 {
return "", 0, err
}
if pageNumberInt != 0 {
pageNumberInt--
}
offsetInt := limitInt * pageNumberInt
pageStr = fmt.Sprintf(" limit %d offset %d", limitInt+1, offsetInt)
return pageStr, limitInt, nil
}
在用到時 直接調用即可。