我一直在看Dart,我想知道它是否像Kotlin那样具有范围运算符 https://kotlinlang.org/docs/reference/ranges.html 或类似的东西。
答案 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)
一直可用,它可以迭代从 0
到 n-1
的整数。目前,这似乎是您可以使用 range()
之类的功能。
请参阅此 issue 7775
中的讨论用法示例:
Iterable.generate(5).forEach((i) => print(i));