Dart:如何强制对变量进行字符串插值

Jes*_*man 6 dart flutter

我有一个变量,其中包含带有插值变量的字符串。在下面的代码中,该变量是template。当我将此变量传递给generateString函数时,我想对其应用字符串插值,因为插值变量所需的值仅在generateString函数中可用。

void main() {
  String template = '<p>\${name}</p>';
  var res = generateString(template);
}

generateString(template) {
  var name = 'abc';
  print(template);
  return template;
}
Run Code Online (Sandbox Code Playgroud)

问题是当我在generateString fn 中打印并返回模板时,我得到的<p>${name}</p>不是<p>abc</p>. 有没有办法明确告诉 dart 进行字符串插值?

我是 Dart 新手。我不知道是否有可能实现。请建议我该怎么做。

编辑:根据其他用户的输入,我想对所呈现的场景进行澄清。模板变量的值不是字符串文字。我从 UI 中获取它作为用户输入。为了代码简单起见,我在这里将其显示为字符串文字。另外,请考虑在我的场景中名称和模板不在同一范围内。

Ran*_*rtz 5

到目前为止,其他答案都是错误的。

字符串插值(查找 $ 等)仅在从源代码编译为内存中的值时发生。如果字符串也有 $,则它不再特殊。

不可能在原始编译步骤之后触发插值。您可以编写一个模板系统,在值中查找类似的内容{{name}},并将其替换为 的当前值name