// 数组分页
func PageData(xs interface{}, page, item int) (interface{}, int) {
fv := reflect.ValueOf(xs)
if fv.Kind() != reflect.Slice {
panic("切片分页元数据必须为切片")
}
if page == 0 { //第0页返回所有
return xs, fv.Len()
}
data := []interface{}{}
for i := Skip(page, item); i < fv.Len() && i < Skip(page, item)+Limit(page, item); i++ {
data = append(data, fv.Index(i).Interface())
}
return data, fv.Len()
}
网友评论