前言
本文主要給大家介紹了關(guān)于golang分頁(yè)算法的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
示例代碼如下:
//分頁(yè)方法,根據(jù)傳遞過(guò)來(lái)的頁(yè)數(shù),每頁(yè)數(shù),總數(shù),返回分頁(yè)的內(nèi)容 7個(gè)頁(yè)數(shù) 前 1,2,3,4,5 后 的格式返回,小于5頁(yè)返回具體頁(yè)數(shù) func Paginator(page, prepage int, nums int64) map[string]interface{} { var firstpage int //前一頁(yè)地址 var lastpage int //后一頁(yè)地址 //根據(jù)nums總數(shù),和prepage每頁(yè)數(shù)量 生成分頁(yè)總數(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頁(yè) 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 }
測(cè)試結(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é)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
標(biāo)簽:晉中 泰安 昭通 瀘州 東營(yíng) 滄州 阿壩 駐馬店
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang實(shí)現(xiàn)分頁(yè)算法實(shí)例代碼》,本文關(guān)鍵詞 golang,實(shí)現(xiàn),分頁(yè),算法,實(shí)例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。上一篇:詳解Go hash算法的支持