飞镖范围运算符

时间:2019-11-01 07:47:19

标签: flutter dart

我一直在看Dart,我想知道它是否像Kotlin那样具有范围运算符 https://kotlinlang.org/docs/reference/ranges.html 或类似的东西。

4 个答案:

答案 0 :(得分:1)

Dart目前没有此类运算符。

答案 1 :(得分:0)

您可以这样使用List.generate

download_as_string()

var list = List.generate(4, (i) => i);
print(list); // prints [0, 1, 2, 3]

答案 2 :(得分:0)

import 'package:lists/lists.dart';

void main() {
  print('Range list');
  for (final i in RangeList(99999999, 100000001)) {
    print(i);
  }

  print('Step list 1');
  for (final i in StepList(99999, 100010, 5)) {
    print(i);
  }

  print('Step list 2');
  for (final i in StepList(10, -10, -5)) {
    print(i);
  }

  print('To string');
  print(RangeList(99999, 100001));
  print(StepList(99999, 100010, 5));
  print(StepList(10, -10, -5));
}

结果:

Range list
99999999
100000000
100000001
Step list 1
99999
100004
100009
Step list 2
10
5
0
-5
-10
To string
[99999..100001]
[99999..100010; +5]
[10..-10; -5]

P.S。
这样的列表不占用用于存储项目的内存。元素是即时计算的。

示例:

RangeList(0, 10000000000)

此列表所需的内存不超过此列表。

RangeList(0, 1)

答案 3 :(得分:0)

很长一段时间(自 2014 年 9 月以来),Iterable.generate(n) 一直可用,它可以迭代从 0n-1 的整数。目前,这似乎是您可以使用 range() 之类的功能。

请参阅此 issue 7775

中的讨论

用法示例:

Iterable.generate(5).forEach((i) => print(i));