Dart 區間運算庫重磅發佈!

重磅發佈是開個玩笑,其實就是本身在寫代碼的過程當中須要區間運算,可是發現並無趁手的庫,那就直接擼一個輪子吧。git

依賴庫:github

dart_interval https://pub.dev/packages/dart_interval pub.dev/packages/da…bash

安裝依賴

若是是 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…

相關文章
相關標籤/搜索