【问题标题】:Dart string interpolation reading a fileDart字符串插值读取文件
【发布时间】:2015-04-21 23:14:45
【问题描述】:

我知道您可以使用字符串插值来引用字符串文字中的对象,但是,这可以通过读取文本文件给出的字符串来实现吗?

我的意思是。比如:

Function MyTemplate() {
    return (Context context) {
        return readMyFile(); // String: "My name is ${context.name}"
    }
}

我读过 Can I apply Dart's string interpolation dynamically?

但这似乎只适用于硬编码字符串。

【问题讨论】:

    标签: dart


    【解决方案1】:

    字符串插值仅适用于硬编码字符串。您需要构建自己的解决方案或使用现有模板包之一。

    【讨论】:

      【解决方案2】:

      使用核心库中splitMapJoin 方法的简单解决方案:

      String inter(String format, Map<String, dynamic> sub ,{String placeholder = ""}){
          return format.splitMapJoin(RegExp(r'{.*?}'),
          onMatch:    (m) => sub[m.group(0).substring(1, m.group(0).length - 1)].toString() ?? placeholder,
          onNonMatch: (n) => n);
      }
      

      还有一个package 来处理这个问题。

      但是,这些解决方案对我的应用程序并不满意,它还需要从用户提供的文件中插入字符串。由于在这种情况下可以进行较少的假设,因此希望可以从输入字符串中检测到错误。因此,我开发了another package 来实现这一点,并略微提高了性能。此软件包仍处于初级阶段,但所有功能都经过测试。如果您有任何建议,请反馈。

      【讨论】:

        猜你喜欢
        • 2021-09-22
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 2019-05-23
        相关资源
        最近更新 更多