[Go] 分页计算页码的主要逻辑
程序员文章站
2022-10-04 11:57:34
当使用imap进行读取邮件体的时候,有个函数可以根据传入的开始和结束索引来一次读取多条邮件内容主要逻辑类似这样,从1开始, 1,10 11,20 21,30 或者 1,31 32,63 这样的分批处理 现在就是使用数组切片来模拟这个过程,总数据12条,每次10个,要分两次,开始和结束分别为,1,10 ......
当使用imap进行读取邮件体的时候,有个函数可以根据传入的开始和结束索引来一次读取多条邮件内容
主要逻辑类似这样,从1开始, 1,10 11,20 21,30 或者 1,31 32,63 这样的分批处理
现在就是使用数组切片来模拟这个过程,总数据12条,每次10个,要分两次,开始和结束分别为,1,10, 11,12
package main import ( "fmt" "math" ) func main() { //定义一个10的切片,假设这是10个数据记录 var arr []int for i := 1; i <= 12; i++ { arr = append(arr, i) } //分页展示 var pagesize int = 10 var start int = 1 var stop int var pagecount int var curpage int //总页数,向上取整,注意除之前要先转换类型为float64 pagecount = int(math.ceil(float64(len(arr)) / float64(pagesize))) for curpage = 1; curpage <= pagecount; curpage++ { if curpage == 1 { start = 1 } else { start = (curpage-1)*pagesize + 1 } stop = curpage * pagesize if stop > len(arr) { stop = len(arr) } //这里就可以查看开始和结束了 fmt.println(start, stop) } }