Go语言中文网 为您找到相关结果 12

golang实现分页算法

```go //分页方法,根据传递过来的页数,每页数,总数,返回分页的内容 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 ...阅读全文

博文 2018-09-10 16:01:03 JimPang

golang的分页例子, 使用了beego,ameiziui

//分页方法,根据传递过来的页数,每页数,总数,返回分页的内容 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 {...阅读全文

博文 2016-01-06 03:00:00 bingciwei

beego分页类

go count, _ := models.M("logoperation").Alias(`op`).Field(`count(op.id) as count`).Where(where).Count() if count > 0 { pagesize := 10 p := tools.NewPaginator(this.Ctx.Request, pagesize, count) log, _ := models.M("logoperation").Alias(`op`).Where(where).Limit(strconv.Itoa(p.Offset()), strconv.Itoa(pagesize)).Order(`op.id desc`).Select() this.Data["d...阅读全文

博文 2015-06-05 11:00:06 别人说我名字很长

RSS 阅读器 QReader

QReader 是一款使用 Go 和 JavaScript 编写的阅读器,支持订阅 RSS 2.0 和 Atom 1.0 格式的 feed。 为了运行 QReader ,你需要有一台 server,它可以是你放在局域网中的 PC。你需要在 server 上运行 QReader 服务端程序,然后使用手机、平板电脑或 server 上的浏览器访问 QReader。当然,如果你有兴趣,可以尝试把 QReader 编译到 Android、iOS 设备或路由器中。 QReader 是一个单用户的阅读器,不适合多人共同使用。 ![QReader](http://static.oschina.net/uploads/img/201510/03192857_qoy8.jpg) QReader 包...阅读全文

开源项目 2015-10-02 16:00:00 m3ng9i

golang 分页

工具包tools/paging.go package tools import ( "math" ) func CreatePaging(page, pagesize, total int64) *Paging { if page < 1 { page = 1 } if pagesize < 1 { pagesize = 10 } page_count := math.Ceil(float64(total) / float64(pagesize)) paging := new(Paging) paging.Page = page paging.Pagesize = pagesize paging.Total = total paging.PageCount = int64(page_coun...阅读全文

博文 2018-04-24 17:33:06 别人说我名字很长

Go手动内存分配

2013-10-27 Go手动内存分配 Go手动内存分配 用Go的时候,有时候又想自己管理内存。所以决定写个手动内存管理的包吧。就当无聊练练手... 总体设计 两级分配。较大内存以页为单位分配,每页4k。分配出去的大块内存只能是1页,2页,3页...较小内存使用buddy算法结合分配池的方式进行分配。buddy算法主要是方便回收,对于各种不规则大小则分别维护一个free的链表。 整体上基本类似于Go本身使用的内存管理算法,除了没有引入垃圾回收标记信息,以及对小对象使用buddy分配算法。 buddy算法 管理结点使用的内存跟最小最大结点相关。如果最小单元太小,则浪费过多的管理结点。管理结点数目=最小单元数目*2 如果最大单元过大,则需要用更长的整型来记录大小,单个管理结点的大小增加。 bud...阅读全文

博文 2015-03-17 10:25:55 zenlife

每天5分钟学Golang从入门到放弃 —— 七嘴八舌

学习一门编程语言途径无非就是两种:读书、看视频。很多人在刚准备入门的时候在这两种方式之间徘徊许久,这里简单说下两种方式各自的优缺点: (1)看书 优点: 方便做笔记(题外话:想怎么写就怎么写,想怎么画就怎么画,等等你是来学习golang还是学习画画的) 花费时间相对比较短(题外话:很多人说自己看书很慢,那是因为没掌握方法,看书不是每页都从第一个字看到最后一个字才算看完,可以着重看下目录、大小标题、序言、每章总结等等,具体方式后面有空再整理分享。) 花费时间相对比较短 缺点: 检索不方便(比如说想起某个知识点好像在哪里看过,但又记不清) 接受效率相对较低(看视频是眼看,耳听;看书只用眼看接受效率会略低于看视频) 相对比较枯燥(题外话:看书?不就是用来保证晚上睡眠质量的?) (2) 看视频 优点...阅读全文

Golang 对MongoDB的操作简单封装

Golang 对MongoDB的操作简单封装 使用MongoDB的Go驱动库 mgo,对MongoDB的操作做一下简单封装 初始化 操作没有用户权限的MongoDB var globalS *mgo.Session func init() { s, err := mgo.Dial(dialInfo) if err != nil { log.Fatalf("Create Session: %s\n", err) } globalS = s } 如果MongoDB设置了用户权限需要使用下面的方法操作 func init() { dialInfo := &mgo.DialInfo{ Addrs: []string{dbhost}, //数据库地址 dbhost: mongodb://user@12...阅读全文

博文 2018-07-04 12:34:41 CodeMiner

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 { ...阅读全文

博文 2019-05-22 01:34:42 永远de明天

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 { ...阅读全文

博文 2019-08-27 17:32:52 灰侠_bf44

golang实现简单爬虫---豆瓣电影前250

package main import ( "fmt" "io" "net/http" "os" "regexp" "strconv" ) func main() { //起始页,页结束 var startPage, endPage int fmt.Println("请输入起始页>=1") fmt.Scan(&startPage) fmt.Println("请输入结束页>=起始页") fmt.Scan(&endPage) startWorking(startPage, endPage) } func startWorking(startPage, endPage int) { //同步每个go程,每个go程结束,往此通道写入数据,所有go程结束退出程序 quit := make(chan i...阅读全文

博文 2019-07-28 19:32:40 七八个星天

当查询的数据来自多个数据源,有哪些好的分页策略?

概述 在业务系统开发中,尤其是后台管理系统,列表页展示的数据来自多个数据源,列表页需要支持分页,怎么解决? 问题 如上图,数据源可能来自不同 DB 数据库,可能来自不同 API 接口,也可能来自 DB 和 API 的组合。 我这也没有太好的解决方案,接到这样的需求,肯定首先和需求方沟通,这样分页是否合理。 无非就两种方案: 数据定期同步,首先将查询的数据汇总到一个地方,然后再进行查询分页。 内存中分页,首先将查询的数据存放到内存,然后再进行查询分页。 如果以某一数据源进行分页,其他字段去其他数据源获取,这样还好处理一些。 如果以多个数据源融合后再分页的话,就数据定期同步 或 内存中分页吧。 数据定期同步方案可以根据实际情况去设计同步频率,至于同步到 ES/MySQL/MongoDB 自己决定...阅读全文

博文 2020-03-16 13:37:08 新亮笔记