我想把它转换成省道码,但我不理解该代码中的三元操作符
const getPagination = (page, size) => {
const limit = size ? +size : 3
const from = page ? page * limit : 0
const to = page ? from + size - 1 : size - 1
return { from, to }
}如果你能告诉我一行行做什么代码??
发布于 2022-09-13 13:01:14
对于相同代码的一个更惯用的Dart实现可以是:
Range getPagination([int page = 0, int size = 3]) {
RangeError.checkNotNegative(page, "page");
if (size <= 0) size = 3;
var from = page * size;
var to = from + size - 1;
return Range(from, to);
}
class Range {
final int from;
final int to;
Range(this.from, this.to);
}这允许您使用不带参数的调用,但不能使用null作为显式参数。所以别那么做。
如果省略了大小,则大小为3。如果大小是null或0,那么这比找到一个限制更有用,但是在to计算中还是要使用size,而不是limit。
使用整数列表作为一对整数并不是Dart方法。我会创建一个类,比如这里,或者等待记录并使用适当的(int, int)元组。
Dart列表和地图是比JavaScript“对象”更昂贵的数据结构。一个小类对应于JavaScript中的匿名对象JavaScript。
发布于 2022-09-12 22:48:16
所以我通过查看TS播放代码来转换它
void main() {
List<int> getPagination(int? page, int? size) {
int? limit = size ?? 3;
int? from = page != null ? page * limit : 0;
int? to = page != null ? (from + size!) - 1 : (size! - 1);
return [from, to];
}
print(getPagination(0, 10));
}以及它的作品- @blex
https://stackoverflow.com/questions/73695805
复制相似问题