【问题标题】:How do you print a dollar sign $ in Dart你如何在 Dart 中打印美元符号 $
【发布时间】:2014-03-20 20:57:07
【问题描述】:

我需要在 Dart 中实际打印一个美元符号,在一个变量之前。例如:

void main()
{
  int dollars=42;
  print("I have $dollars."); // I have 42.
}

我希望输出是:我有 42 美元。我怎样才能做到这一点?谢谢。

【问题讨论】:

  • 你试过print("I have \$dollars."); 吗? (我其实不知道飞镖,我只是猜测)
  • 这样的字符称为转义字符

标签: syntax variables dart


【解决方案1】:

您可以使用反斜杠转义:

int dollars=42;
print("I have \$$dollars."); // I have $42.

当您使用文字而不是变量时,您还可以使用原始字符串:

print(r"I have $42."); // I have $42.

【讨论】:

  • 原始是我的解决方案。我有一个带有很多美元符号的大令牌文字,我采用的是 PHP 方式(单引号不会插入),但这里有点不同。
【解决方案2】:

Dart 字符串可以是原始的,也可以是……非原始的(正常的?熟的?解释的?没有正式的名称)。我将在这里使用“解释”,因为它描述了您遇到的问题。

在原始字符串中,“$”和“\”没有什么特别的意义,它们只是和其他字符一样的字符。 在解释字符串中,“$”开始插值,“\”开始转义。

由于您想要对“$dollars”进行插值,因此不能按字面意思使用“$”,因此您需要对其进行转义:

int dollars = 42;
print("I have \$$dollars.");

如果您不想使用转义,可以将原始部分和解释部分的字符串组合起来:

int dollars = 42;
print(r"I have $" "$dollars."); 

两个相邻的字符串文字组合成一个字符串,即使它们是不同类型的字符串。

【讨论】:

  • 还有一个更复杂的解决方案,我不想推荐,但我认为为了完整性值得一提:使用字符串文字作为字符串插值的表达式:print("I have ${r"$"}$dollars.")。这……很有趣,但我还没有找到比仅使用单独的相邻字符串文字更方便的情况。
  • 感谢您的有用回答,并祝贺您达到 10,000!
猜你喜欢
  • 2014-03-22
  • 2011-11-11
  • 2013-09-28
  • 2020-06-12
  • 2023-03-21
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
相关资源
最近更新 更多