双引号与单引号有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双引号与单引号有啥区别相关的知识,希望对你有一定的参考价值。

参考技术A

双引号的作用有:

1、行文中直接引用的话;

2、需要着重论述的对象;

3、具有特殊含意的词语;

4、表示特定称谓;

5. 用于话语之中。

单引号的作用有:

1、引号里面还要用引号时,外面一层用双引号,里面一层用单引号。

2、用于各拼音输入法的隔音符。

3、用于突出文章结构、或表达特殊内容。



扩展资料

注意事项

引语指行文中引用他人的话。成语、格言、诗词等, 也包括拟声词、音译词。特定称谓指具有某些特点的名称、简称、专用术语以及纪念日等。特殊含义指引号中的词语在其具体的语言环境中产生了新的意思。

使用引用时,引文末尾标点的位置要注意。 凡是把引用的话独立来用,末尾点号放在引号里边。如果引用的内容是句子的一个组成部分,即引文没有独立性,引用部分末尾不用点号(问号、叹号可保留),整个句子该停顿处则停顿,该用何点号则用何点号。

r Markdown的Yaml标头中的单引号和双引号有啥区别?

【中文标题】r Markdown的Yaml标头中的单引号和双引号有啥区别?【英文标题】:What is the difference between a single quote and double quote in Yaml header for r Markdown?r Markdown的Yaml标头中的单引号和双引号有什么区别? 【发布时间】:2015-10-02 09:12:59 【问题描述】:

我在 RStudio 中使用 knitr 编译的 r Markdown 文件中出现错误。我不确定这个“错误”应该指向哪里。看来这不是一个“R”错误。

如果我创建一个带有以下 YAML 标头内容的 R markdown 文档,我可以很好地编织该文件:

---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date:  "`r format(Sys.time(), '%I:%M')`"
output: html_document
---

但如果我只是将格式语句中的单引号更改为双引号(这是我最初使用的),

---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date:  "`r format(Sys.time(), "%I:%M")`"
output: html_document
---

我收到以下运行时错误:

Error in yaml::yaml.load(enc2utf8(string), ...) : 
  Scanner error: while scanning for the next token at line 3, column 32found character that cannot start any token at line 3, column 32
Calls: <Anonymous> ... yaml_load_utf8 -> mark_utf8 -> <Anonymous> -> .Call
Execution halted

我进行了足够多的实验,知道是冒号“:”导致了问题,例如,如果使用“%A %d”,则不会产生错误。

我四处搜索,发现许多断言在 R 中单引号和双引号通常是等价的,尽管你不能将双引号与单引号配对并让它像两个双引号一样。

显然,我有一个工作代码示例可以完成我需要做的事情,但我通常使用双引号,我想知道如何知道何时应该使用单引号?

【问题讨论】:

我认为这可能与在 R 中引用 `(反引号)你必须使用标准引用 " 的事实有关,反之亦然,所以引用标准引用你必须使用反引号。可能是这样。 或者是因为某些元素从物质上干扰了 YAML,并且仅保留用于解析 YAML 格式。 经过搜索,我已将我的解决方案发布到this 其他问题。此时可以将其标记为重复。 双引号内不能有双引号......你最终会得到两个字符串。您的选择是使用反斜杠转义内部引号或使用不同类型的引号(单引号)。 (反之亦然切换双引号和单引号。)反引号与它无关。 @Gregor 我现在看到,YAML 解析器在第二个双引号(就在 %I 之前)处“关闭”了我的字符串。通过在格式语句中使用单引号。它没有与外部双引号配对。很难用语言来形容,但我认为这是有道理的。我最初使用嵌套双引号基本上暴露了冒犯性的冒号并导致错误。 【参考方案1】:

单引号和双引号在 R 中通常是等价的(就像它们在 Python 中一样)是无关紧要的,解析问题发生在 YAML 级别。

您不需要在 YAML 中引用标量,但如果这样做,您需要知道 double quoted style scalars (") 需要转义:

这是唯一能够通过使用“\”转义序列来表达任意字符串的样式。这是以必须转义“\”和“"”字符为代价的。

所以如果你想在双引号中使用双引号,你必须这样做:

---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date:  "`r format(Sys.time(), \"%I:%M\")`"
output: html_document
---

SabDeM 的解决方案同样有效,因为标量中没有单引号

`r format(Sys.time(), "%I:%M")`

然而,单引号样式标量只能表示仅由可打印字符组成的字符串。


标量通常根本不需要在 YAML 中引用,就像您已经对键(titleauthor 等)所做的那样。但是普通样式的标量不能以反引号开头。我会为所有标量使用plain style,除了date 键的值,并为那个(仅)使用literal style,以使IMO 具有更好的可读性:

---
title: Eye tracking AOI plots
author: Steven Vannoy
date: |-
  `r format(Sys.time(), "%I:%M")`
output: html_document
---

这完全等同于您的 YAML。

【讨论】:

【参考方案2】:

正如我在评论中所说,问题可能在于 knitr 不知道如何解析嵌套符号,或者问题可能与引用 ` 你需要 " 的事实有关,反之亦然。此代码有效,并为后一个假设提供了一个加分:

---
title: "Eye tracking AOI plots"
author: "Steven Vannoy"
date:  '`r format(Sys.time(), "%I:%M")`'
output: html_document
---

【讨论】:

以上是关于双引号与单引号有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的双引号与单引号[重复]

单引号和双引号有啥区别?

python里的单引号和双引号有啥区别

linux单引号 双引号 反引号 的区别

sql中单引号跟双引号有啥区别?分别用于啥情况?

shell中对于单引号,双引号和反引号的处理方式