为什么在字符串插值中不总是使用花括号?

Mat*_*had 6 string-interpolation dart

https://dart.dev/guides/language/ effective-dart/usage#avoid-using-curly-braces-in-interpolation-when-not-needed effective-dart/usage#avoid-using-curly-braces-in-interpolation-when-not-needed表示在不需要时避免在插值中使用花括号。如果您\xe2\x80\x99 插入一个简单标识符,后面没有紧跟着更多字母数字文本,则应省略 {}。

\n\n

除了不需要进行插值之外,这样做还有什么问题吗?

\n\n

指南说这很好:

\n\n
\'Hi, $name!\'\n    "Wear your wildest $decade\'s outfit."\n    \'Wear your wildest ${decade}s outfit.\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

指南说这很糟糕:

\n\n
\'Hi, ${name}!\'\n    "Wear your wildest ${decade}\'s outfit."\n
Run Code Online (Sandbox Code Playgroud)\n

jul*_*101 4

这不是问题,因为$decadeare 只是 的简写${decade}。所以两个字符串最终都会编译成相同的代码。linter 规则与品味有关,并使代码在代码库中保持一致。

您可以在有关“字符串插值”的章节中的 Dart 语言规范中看到这一点:https ://dart.dev/guides/language/specifications/DartLangSpec-v2.2.pdf

形式 $id 等同于形式 ${id}。

要自定义将运行哪些 linter 规则,请参阅以下链接:https ://dart.dev/guides/language/analysis-options