Ane*_*lou 26 ruby yaml amazon-elastic-beanstalk
如果我在YAML中每个缩进级别使用一个空格,两个或四个空格,有什么区别吗?
每种结构类型的空间编号是否有任何特定规则?
例如4位为嵌套的地图,1个每空间列表项等??
我正在为弹性beanstalk .ebextensions编写一个yaml配置文件,我很难正确地构建它.虽然我在YAML Validator中有有效的yaml 弹性beanstalk似乎理解不同的结构.
fly*_*lyx 35
YAML没有要求缩进任何具体数量的空格.也没有要求保持一致.例如,这是有效的YAML:
a:
b:
- c
- d
- e
f:
"ghi"
Run Code Online (Sandbox Code Playgroud)
有些规则可能会引起关注:
{or 开头的所有内容[)可以跨越多行,但必须至少缩进与周围当前块级别一样多的空间.-被视为缩进的一部分:a: # top-level key
- b # value of that key, which is a list
- c
c: # next top-level key
d # non-list value which must be more indented
Run Code Online (Sandbox Code Playgroud)
小智 9
在 YAML 块样式中,结构由缩进决定。通常,缩进被定义为行首的零个或多个空格字符。
为了保持可移植性,不能在缩进中使用制表符,因为不同的系统对制表符的处理方式不同。请注意,大多数现代编辑器可能被配置为按下 Tab 键会导致插入适当数量的空格。
缩进的数量是表示细节,不得用于传达内容信息。
因此,只要您使用空格而不是制表符,您就可以根据自己的喜好设置缩进深度。有趣的是,IntelliJ 默认使用 2 个空格。
小智 5
缩进 YAML 文件的建议语法是使用 2 个空格进行缩进,但 YAML 将遵循单个文件使用的任何缩进系统。考虑到数据是统一的且没有深度嵌套的事实,两个空格的缩进对于 SLS 文件非常有效。
嵌套字典 当字典嵌套在其他数据结构(特别是列表)中时,缩进逻辑有时会发生变化。可能发生这种情况的示例包括来自 file.managed 状态的上下文和默认选项:
/etc/http/conf/http.conf:
file:
- managed
- source: salt://apache/http.conf
- user: root
- group: root
- mode: 644
- template: jinja
- context:
custom_var: "override"
- defaults:
custom_var: "default value"
other_var: 123
Run Code Online (Sandbox Code Playgroud)
请注意,虽然每级缩进两个空格,但对于上下文和默认选项下的值,缩进有四个空格。如果仅使用两个空格来缩进,那么这些键将被视为包含上下文键的同一字典的一部分,因此数据将无法正确加载。如果不希望使用双缩进,那么可以使用花括号声明深度嵌套的 dict:
/etc/http/conf/http.conf:
file:
- managed
- source: salt://apache/http.conf
- user: root
- group: root
- mode: 644
- template: jinja
- context: {
custom_var: "override" }
- defaults: {
custom_var: "default value",
other_var: 123 }
Run Code Online (Sandbox Code Playgroud)
您可以从此链接阅读更多信息
| 归档时间: |
|
| 查看次数: |
21218 次 |
| 最近记录: |