【发布时间】:2010-12-17 22:06:21
【问题描述】:
我经常进行结果分页(给定页码和页面大小,计算开始、结束和总页数),我从 Java 移植了这个小函数来提供帮助:
def page(page: Int, pageSize: Int, totalItems: Int) = {
val from = ((page - 1) * pageSize) + 1
var to = from + pageSize - 1
if (to > totalItems) to = totalItems
var totalPages: Int = totalItems / pageSize
if (totalItems % pageSize > 0) totalPages += 1
(from, to, totalPages)
}
在接收方:
val (from, to, totalPages) = page(page, pageSize, totalItems)
虽然它有效,但我确信在 Scala 中有更多可读性和功能性的方法来做同样的事情。什么是更类似于 scala 的方法?
特别是,我试图找到一种更好的说法:
var to = from + pageSize - 1
if (to > totalItems) to = totalItems
在 Java 中我可以这样做:
from + pageSize - 1 + (to > totalItems) ? 1 : 0;
【问题讨论】:
标签: scala pagination paging