相关疑难解决方法(0)

Dart包的条件导入/代码

有什么方法可以根据环境标志或Dart中的目标平台有条件地导入库/代码吗?我正在尝试dart:io根据目标平台在ZLibDecoder / ZLibEncoder类和zlib.js 之间切换。

有一篇文章描述了如何创建一个统一的界面,但是我无法想象这种技术不会创建重复的代码,也不会创建冗余测试来测试该重复的代码。game_loop 使用此技术,但使用似乎不共享任何内容的单独类(GameLoopHtml和GameLoopIsolate)。

我的代码看起来像这样:

class Parser {
  Layer parse(String data) {
    List<int> rawBytes = /* ... */;
    /* stuff you don't care about */
    return new Layer(_inflateBytes(rawBytes));
  }
  String _inflateBytes(List<int> bytes) {
    // Uses ZLibEncoder on dartvm, zlib.js in browser
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望通过具有两个独立的类ParserHtml和ParserServer来避免代码重复,除了之外,它们都实现了相同的一切_inflateBytes

编辑:这里的具体示例:https : //github.com/radicaled/citadel/blob/master/lib/tilemap/parser.dart。这是一个TMX(磁贴图XML)解析器。

dart dart-mirrors

5
推荐指数
1
解决办法
1024
查看次数

标签 统计

dart ×1

dart-mirrors ×1