我有一个变量,其中包含带有插值变量的字符串。在下面的代码中,该变量是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 中获取它作为用户输入。为了代码简单起见,我在这里将其显示为字符串文字。另外,请考虑在我的场景中名称和模板不在同一范围内。
到目前为止,其他答案都是错误的。
字符串插值(查找 $ 等)仅在从源代码编译为内存中的值时发生。如果该字符串也有 $,则它不再特殊。
不可能在原始编译步骤之后触发插值。您可以编写一个模板系统,在值中查找类似的内容{{name}},并将其替换为 的当前值name。
| 归档时间: |
|
| 查看次数: |
10145 次 |
| 最近记录: |