【问题标题】:What does a string literal mean in CoffeescriptCoffeescript 中的字符串字面量是什么意思
【发布时间】:2012-12-15 04:33:55
【问题描述】:

Coffeescript docs 包含以下内容

字符串插值、块字符串和块注释 Ruby 风格的字符串插值包含在 CoffeeScript 中。双引号字符串允许使用 #{ ... } 进行插值,而单引号字符串是文字。

谁能解释一下“单引号字符串是文字”是什么意思

这只是意味着不会有解释吗?还有更多javascripty的意思吗?

我问是因为我发现使用单引号字符串和双引号作为对象键时有所不同。

【问题讨论】:

  • 短语 "single-quoted strings are literals" 是否使它更清晰?我必须承认,当我第一次在他们的文档中阅读时我也很困惑,但我认为这只是一个简单的“紧张混乱”错误。
  • 好吧,这可能只是我缺乏javascript知识。我不知道字符串文字是一个事物。只需阅读他们here。把事情搞清楚了。
  • 请注意,以'with single quotes'"with double quotes" 分隔的字符串之间没有实际的语义差异。语言对两者的处理方式完全相同。您使用哪个只是选择一个约定并坚持它的问题。 (显然我推荐我自己的,我在下面提到)
  • @GeorgeMauer:您的意思是除了您在回答中描述的语义差异之外?
  • @RobertHarvey 区别在于coffeescript - 对于javascript(不支持插值)根本没有区别

标签: coffeescript


【解决方案1】:
name = "George"

"My Name: #{name}"    ====> "My Name: George"
'My Name: #{name}'    ====> "My Name: #{name}"

在这种情况下,字面意思是 字面上你在字符串中写的内容

出于这个原因(以及其他一些原因),当字符串是对最终用户有意义的自然语言时(例如错误消息),我喜欢使用双引号约定。以及对程序有意义的符号的单引号(如属性名称、标志、模块名称等)。

不,这不是你的错,“literal”这个词在 cs 中有 20 个定义。

【讨论】:

  • 好的,所以我应该能够在 Coffeescript 中将两者都用作字符串键?
  • 是的,试图确定咖啡脚本中“文字”一词​​的含义会让新手感到困惑。
  • 是的,它们在 javascript 中没有任何区别。在 coffeescript 中,唯一的区别是双引号允许插值,而单引号不允许。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
  • 2011-09-17
  • 2018-05-01
  • 2012-05-25
  • 2011-06-10
  • 2015-01-03
相关资源
最近更新 更多