亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang實(shí)現(xiàn)分頁算法實(shí)例代碼

 更新時間:2018年09月12日 11:01:27   作者:JimPang  
這篇文章主要給大家介紹了關(guān)于golang實(shí)現(xiàn)分頁算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要給大家介紹了關(guān)于golang分頁算法的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧

示例代碼如下:

//分頁方法,根據(jù)傳遞過來的頁數(shù),每頁數(shù),總數(shù),返回分頁的內(nèi)容 7個頁數(shù) 前 1,2,3,4,5 后 的格式返回,小于5頁返回具體頁數(shù)
func Paginator(page, prepage int, nums int64) map[string]interface{} {

 var firstpage int //前一頁地址
 var lastpage int //后一頁地址
 //根據(jù)nums總數(shù),和prepage每頁數(shù)量 生成分頁總數(shù)
 totalpages := int(math.Ceil(float64(nums) / float64(prepage))) //page總數(shù)
 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
}

測試結(jié)果如下

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

運(yùn)行結(jié)果如下

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Go語言排序算法:快速、可靠的排序解決方案

    Go語言排序算法:快速、可靠的排序解決方案

    Go語言提供了多種快速、可靠的排序算法,可以滿足不同場景下的排序需求,其中最常用的排序算法包括快速排序、歸并排序和堆排序,需要的朋友可以參考下
    2023-10-10
  • Golang 實(shí)現(xiàn)Socket服務(wù)端和客戶端使用TCP協(xié)議通訊

    Golang 實(shí)現(xiàn)Socket服務(wù)端和客戶端使用TCP協(xié)議通訊

    這篇文章主要介紹了Golang 實(shí)現(xiàn)Socket服務(wù)端和客戶端使用TCP協(xié)議通訊,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 使用go連接clickhouse的實(shí)戰(zhàn)操作

    使用go連接clickhouse的實(shí)戰(zhàn)操作

    這篇文章主要給大家介紹了關(guān)于使用go連接clickhouse的實(shí)戰(zhàn)操作,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用go具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-03-03
  • Go中runtime.Caller的使用

    Go中runtime.Caller的使用

    這篇文章主要介紹了Go中runtime.Caller的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • Go批量操作excel導(dǎo)入到mongodb的技巧

    Go批量操作excel導(dǎo)入到mongodb的技巧

    這篇文章主要介紹了Go批量操作excel導(dǎo)入到mongo,包括選擇命令行包,讀取配置連接數(shù)據(jù)庫的方法,本文示例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Go語言中io包核心接口示例詳解

    Go語言中io包核心接口示例詳解

    Go的io包提供了io.Reader和io.Writer接口,分別用于數(shù)據(jù)的輸入和輸出,下面這篇文章主要給大家介紹了關(guān)于Go語言中io包核心接口的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • go語言中Timer和Ticker兩種計(jì)時器的使用

    go語言中Timer和Ticker兩種計(jì)時器的使用

    go語言中有Timer和Ticker這樣的兩種計(jì)時器,兩種計(jì)時器分別實(shí)現(xiàn)了不同的計(jì)時功能,本文主要介紹了go語言中Timer和Ticker兩種計(jì)時器的使用,感興趣的可以了解一下
    2024-08-08
  • golang實(shí)現(xiàn)ip訪問限制及提交次數(shù)

    golang實(shí)現(xiàn)ip訪問限制及提交次數(shù)

    在?Web?應(yīng)用中,通常會需要對?IP?訪問進(jìn)行限制以及控制提交次數(shù),本文將使用中間件或者基于?Redis?這樣的緩存服務(wù)來實(shí)現(xiàn),感興趣的可以了解下
    2024-10-10
  • go goroutine 怎樣進(jìn)行錯誤處理

    go goroutine 怎樣進(jìn)行錯誤處理

    在 Go 語言程序開發(fā)中,goroutine 的使用是比較頻繁的,因此在日常編碼的時候 goroutine 里的錯誤處理,怎么做會比較好呢,本文就來詳細(xì)介紹一下
    2021-07-07
  • 文字解說Golang Goroutine和線程的區(qū)別

    文字解說Golang Goroutine和線程的區(qū)別

    goroutine 是 Go語言中的輕量級線程實(shí)現(xiàn),由 Go 運(yùn)行時(runtime)管理,使用每一個 go 關(guān)鍵字將會額外開啟一個新的協(xié)程 goroutine,今天通過本文給大家介紹下Golang Goroutine和線程的區(qū)別,感興趣的朋友一起看看吧
    2022-03-03

最新評論