男神鹏:golang gin 实现分页工具函数

分页是项目的一些关键点,每个语言都有它不同的写法,那么在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
  }
 
在用到时 直接调用即可。
posted @ 2019-12-17 18:43  男神鹏●詹姆斯  阅读(3438)  评论(0编辑  收藏  举报