重磅發佈是開個玩笑,其實就是本身在寫代碼的過程當中須要區間運算,可是發現並無趁手的庫,那就直接擼一個輪子吧。git
依賴庫:github
若是是 Dart 項目,執行如下命令:markdown
dart pub add dart_interval
複製代碼
若是是 Flutter 項目,則能夠執行:數據結構
flutter pub add dart_interval
複製代碼
或者直接在項目的 pubspec.yaml
文件中添加下面的內容:oop
dependencies:
dart_interval: ^0.1.1
複製代碼
Interval
- 提供區間的數據結構IntervalSet
- 提供多個區間的合併操做& |
- 支持區間的交集、並集運算import 'package:dart_interval/dart_interval.dart';
final v1 = Interval.between(1, 3, lowerClosed: false, upperClosed: false);
複製代碼
能夠使用 Interval.between
方法來建立一個區間。還有兩個可選參數,分別表明區間的左右開閉。ui
final v1 = Interval.between(1, 3);
final v2 = Interval.between(2, 5);
final v3 = Interval.between(7, 9);
final set = IntervalSet([v1, v2, v3]);
print(set);
// output: [1, 5],[7, 9]
複製代碼
能夠使用 IntervalSet
來合併多個區間。spa
print(v1 & v2);
// output: [2, 3]
複製代碼
Interval
重載了 &
和 |
操做符,能夠直接用來進行交集運算或者並集運算。code
print(v1 | v2);
// output: [1, 5]
複製代碼
或者orm
print(IntervalSet([v1, v2]));
// output: [1, 5]
複製代碼
Github 地址:github.com/T-Oner/dart…