package main
import (
"fmt"
"math"
)
func main() {
data := []string{"a", "b", "c", "d", "e"}
size := 10
page := 1
start, end := SlicePage(page, size, len(data))
pageData := data[start:end]
fmt.Println(pageData)
}
func SlicePage(page, pageSize, nums int) (sliceStart, sliceEnd int) {
if page <= 0 {
page = 1
}
if pageSize < 0 {
pageSize = 10
}
pageCount := int(math.Ceil(float64(nums) / float64(pageSize)))
if page > pageCount {
return 0, 0
}
if pageSize > nums {
return 0, nums
}
sliceStart = (page - 1) * pageSize
sliceEnd = sliceStart + pageSize
if sliceEnd > nums {
sliceEnd = nums
}
return sliceStart, sliceEnd
}