• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    golang实现分页算法实例代码

    前言

    本文主要给大家介绍了关于golang分页算法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

    示例代码如下:

    //分页方法,根据传递过来的页数,每页数,总数,返回分页的内容 7个页数 前 1,2,3,4,5 后 的格式返回,小于5页返回具体页数
    func Paginator(page, prepage int, nums int64) map[string]interface{} {
    
     var firstpage int //前一页地址
     var lastpage int //后一页地址
     //根据nums总数,和prepage每页数量 生成分页总数
     totalpages := int(math.Ceil(float64(nums) / float64(prepage))) //page总数
     if page > totalpages {
      page = totalpages
     }
     if page = 0 {
      page = 1
     }
     var pages []int
     switch {
     case page >= totalpages-5  totalpages > 5: //最后5页
      start := totalpages - 5 + 1
      firstpage = page - 1
      lastpage = int(math.Min(float64(totalpages), float64(page+1)))
      pages = make([]int, 5)
      for i, _ := range pages {
       pages[i] = start + i
      }
     case page >= 3  totalpages > 5:
      start := page - 3 + 1
      pages = make([]int, 5)
      firstpage = page - 3
      for i, _ := range pages {
       pages[i] = start + i
      }
      firstpage = page - 1
      lastpage = page + 1
     default:
      pages = make([]int, int(math.Min(5, float64(totalpages))))
      for i, _ := range pages {
       pages[i] = i + 1
      }
      firstpage = int(math.Max(float64(1), float64(page-1)))
      lastpage = page + 1
      //fmt.Println(pages)
     }
     paginatorMap := make(map[string]interface{})
     paginatorMap["pages"] = pages
     paginatorMap["totalpages"] = totalpages
     paginatorMap["firstpage"] = firstpage
     paginatorMap["lastpage"] = lastpage
     paginatorMap["currpage"] = page
     return paginatorMap
    }

    测试结果如下

    func main(){
     pageSize := 3 
     var rsCount int64 = 100
     currentPage := 8
     res := Paginator(currentPage,pageSize,rsCount)
     fmt.Println(res) 
    }

    运行结果如下

    map[pages:[6 7 8 9 10] totalpages:34 firstpage:7 lastpage:9 currpage:8]

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • Golang排列组合算法问题之全排列实现方法
    • Golang算法问题之整数拆分实现方法分析
    • Golang算法问题之数组按指定规则排序的方法分析
    • Golang算法之田忌赛马问题实现方法分析
    • Golang最大递减数算法问题分析
    • Golang正整数指定规则排序算法问题分析
    • Go语言实现的树形结构数据比较算法实例
    • Go语言算法之寻找数组第二大元素的方法
    • go语言睡眠排序算法实例分析
    • GO语言利用K近邻算法实现小说鉴黄
    上一篇:详解Go hash算法的支持
    下一篇:Go秒爬博客园100页新闻
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    golang实现分页算法实例代码 golang,实现,分页,算法,实例,