回答
TL; DR;n
是2009年之前在YAML中用于布尔型“假”值的规范表示法。
崇高不应强调,默认情况下为n
一直没有自2009年以来曾在YAML这样的表示。如果在所有的,它应该只突出n
如果你明确指定通过接口进行编辑YAML 1.1文件,或者如果文档通过文档顶部的指令%YAML 1.1
进行识别。
在YAML标量可以具有不同的格式(from the YAML 1.2 specification):
YAML允许定标器以多种格式来呈现。例如,整数“11”也可能写为“0xB”。标签必须指定一种机制,将格式化的内容转换为规范形式以用于相等性测试。像节点样式一样,格式是一个表示细节,并不反映在序列化树和表示图中。
年长1.1规范有不同的第二句那款,那directly mentions booleans:
例如,布尔“真”也可以写成“是”。
YAML标量如何在编程语言中构造取决于解析器使用的模式。最基本的模式将每个标量构造为一个字符串(即不解释)。
在更实际的模式中,存在规范形式(通常用于表示计算机编程类型,如整数,布尔值,日期时间戳等)以及允许匹配的标量(通常通过正则表达式)建造这样一个类型。例如,42
是规范表示,但在输入端0x2a
和0o52
也被允许用于相同的整数值。
在YAML 1.2 core schemas为布尔值被消毒,以规范化形式true
和false
而匹配true
,True
,TRUE
,false
,False
和FALSE
—扩展更简单的架构JSON仅允许true
和false
。
这变为广泛from YAML 1.1其中规范表示是y
和n
同时匹配所有的y
,Y
,yes
,Yes
,YES
,n
,N
,no
,No
,NO
,true
,True
,TRUE
,false
,False
, FALSE
,on
, On
, ON
,off
, Off
,OFF
。这经常导致混淆,因为程序中的匹配字符串必须在YAML中用明确的引号表示,以便在加载时不被解释为布尔值。
Sublime似乎支持YAML 1.1规范,其中布尔值可写为n
。由于YAML 1.2规范是从2009年开始的,我真的不喜欢Sublime这样做,并且不应该将n
解释为布尔值,除非YAML文档以明确的指令%YAML 1.1
开头。 (既然你没有在界面中给出任何说明,并且由于它不在文档中,我认为你没有)。
当然Sublime的原始版本在YAML 1.2规范之前,但是你希望在8年之后它们会通过更新来纠正它。另一个这样的变化是以0
开头的标量,如0123
,它们是YAML 1.2中的字符串,但是YAML 1.1中的(八进制)整数。也许你会使用它作为测试来检查YAML模式是否已被正确更新:0123
不应在编辑器中突出显示,除非您明确指定了YAML 1.1。
当然,过时的库仅支持YAML 1.1,您甚至可能会使用它,但在编辑器中这不是默认的借口。
- 1. Ansible和YAML特殊字符
- 2. 定义的特殊字符含义
- 3. CSS3和HTML5 *特殊字符的含义
- 4. JSON包含特殊字符
- 5. 包含特殊字符
- 6. Android上的特殊字符\ n和\
- 7. Preapre字符串包含特殊字符
- 8. 不包含特殊字符的字符串中的字符数
- 9. 找到包含在单引号(字符,数字,特殊字符)
- 10. 做有&特殊含义的符号吗?
- 11. 仅匹配包含特殊字符的整个单词
- 12. JSON.parse字符串中包含特殊字符的意外字符?
- 13. 文件路径有特殊字符\ N
- 14. Watir:转义特殊字符
- 15. C++ - 转义特殊字符
- 16. XML转义特殊字符
- 17. 转义特殊字符
- 18. 转义特殊字符
- 19. 转义特殊字符
- 20. elasticseach特殊字符转义
- 21. JSTL转义特殊字符
- 22. python转义特殊字符
- 23. Javascript特殊转义字符
- 24. 转义特殊字符
- 25. .htaccess中:包含特殊字符
- 26. 在android preferences.xml中包含特殊字符
- 27. SQL Server特殊字符在提取sp中的含义
- 28. 正则表达式中特殊字符的含义
- 29. 特殊字符>:和<:scala中的含义?
- 30. 帮助文档中特殊字符的含义?
这是编写布尔值的方法之一:y,true,yes,on,n,false,no,off。如果你想把它作为一个字符串,你需要引用它。 – jasonharper