首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS/TS func到Dart func

JS/TS func到Dart func
EN

Stack Overflow用户
提问于 2022-09-12 22:21:33
回答 2查看 34关注 0票数 0

我想把它转换成省道码,但我不理解该代码中的三元操作符

代码语言:javascript
复制
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 }
}

如果你能告诉我一行行做什么代码??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-13 13:01:14

对于相同代码的一个更惯用的Dart实现可以是:

代码语言:javascript
复制
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。如果大小是null0,那么这比找到一个限制更有用,但是在to计算中还是要使用size,而不是limit

使用整数列表作为一对整数并不是Dart方法。我会创建一个类,比如这里,或者等待记录并使用适当的(int, int)元组。

Dart列表和地图是比JavaScript“对象”更昂贵的数据结构。一个小类对应于JavaScript中的匿名对象JavaScript。

票数 1
EN

Stack Overflow用户

发布于 2022-09-12 22:48:16

所以我通过查看TS播放代码来转换它

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73695805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档