YAML 中字符串不加引号、加单引号和加双引号有什么区别?

YAML 中的字符串可以不用引号,也可以用单引号'或双引号",它们之间有什么区别、该如何取舍呢?

  • 字符串默认不需要引号
  • 字符串如果包含如 空格: 等影响 YAML 语法解析的特殊字符,则需要加引号
  • 单引号'会对字符串中的特殊字符进行转义 ,保持原样文本输出,如
content: 'Hello \n World.'

中的换行符\n会原样文本输出为

Hello \n World.
  • 双引号"则不对字符串中的特殊字符进行转义,特殊字符会生效,如
content: "Hello \n World."

中的换行符\n会输出为

Hello 
 World.