zoukankan      html  css  js  c++  java
  • [Go] 分页计算页码的主要逻辑

    当使用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)
        }
    }
  • 相关阅读:
    paip.关于动画效果的原则 html js 框架总结
    一个二维阵列蛇的实现
    数据验证validator 与 DWZ
    20140704, 七月微软安全补丁的通知
    oracle9
    oracle8
    oracle7
    oracle6
    Java正常关闭资源的方式
    oracle5
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11917404.html
Copyright © 2011-2022 走看看