该 YAML规格 明确指出:
映射使用冒号和空格(“:”)来标记每个键:值对。
所以这是合法的:
foo: bar
但是,这不是:
foo:bar
我看到网上很多人都在争论这个空间。我认为他们有一点意见。我自己被它烧了几次。
为什么空间是强制性的?它背后的设计考虑是什么?
该 YAML规格 明确指出:
映射使用冒号和空格(“:”)来标记每个键:值对。
所以这是合法的:
foo: bar
但是,这不是:
foo:bar
我看到网上很多人都在争论这个空间。我认为他们有一点意见。我自己被它烧了几次。
为什么空间是强制性的?它背后的设计考虑是什么?
它很容易被遗漏,因为该规范使用了仅突出显示内部链接的最后一个字符的奇怪惯例,但是 “: ”
在你引用的部分实际上是一个链接 到规范的另一部分 它回答了你的问题:
通常,YAML坚持将“:”映射值指示符与空格分隔。这种限制的好处是“:”字符可以在普通标量中使用,只要它后面没有空格。这允许不带引号的URL和时间戳。它也是混淆的潜在来源,因为“a:1”是一个普通的标量而不是一个关键:值对。
因此,动机是您可以编写此类列表而无需任何引用:
useful_values:
- 2:30
- http://example.com
- localhost:8080
如果空格是可选的,则最终可能会模糊不清,并被解释为一组键值对。
在旁边: 这是JS的一小部分,使得该文档上的链接格式化变得毫无用处。
document.styleSheets[0].insertRule('a[href^="#"] { color: #00A !important; text-decoration: underline !important; background: none !important; }', 0);
它很容易被遗漏,因为该规范使用了仅突出显示内部链接的最后一个字符的奇怪惯例,但是 “: ”
在你引用的部分实际上是一个链接 到规范的另一部分 它回答了你的问题:
通常,YAML坚持将“:”映射值指示符与空格分隔。这种限制的好处是“:”字符可以在普通标量中使用,只要它后面没有空格。这允许不带引号的URL和时间戳。它也是混淆的潜在来源,因为“a:1”是一个普通的标量而不是一个关键:值对。
因此,动机是您可以编写此类列表而无需任何引用:
useful_values:
- 2:30
- http://example.com
- localhost:8080
如果空格是可选的,则最终可能会模糊不清,并被解释为一组键值对。
在旁边: 这是JS的一小部分,使得该文档上的链接格式化变得毫无用处。
document.styleSheets[0].insertRule('a[href^="#"] { color: #00A !important; text-decoration: underline !important; background: none !important; }', 0);