为什么我不能使用String或其他模块保护?
码:
def foo(s1, s2) when String.length(s1) == String.length(s2) do
# something
end
Run Code Online (Sandbox Code Playgroud)
当我希望使用模块功能时,如何优雅地重新格式化这种情况?
我有yml带模板的文件。模板是从 yml 树中间开始的键的一部分。
模板工作没问题,但缩进只保存最后一个键。如何保存所有键的缩进?
base.yml:
app:
config1:
base: {{ service1.company.backend | to_nice_yaml(indent=2) }}
config2:
node: {{ service1.company.addr | to_nice_yaml(indent=2) }}
Run Code Online (Sandbox Code Playgroud)
config.yml:
service1:
company:
backend:
node1: "xxx"
node2: "yyy"
node3: "zzz"
addr:
street: ""
Run Code Online (Sandbox Code Playgroud)
我需要得到:
app:
config1:
base:
node1: "xxx"
node2: "yyy"
node3: "zzz"
config2:
node:
street: ""
Run Code Online (Sandbox Code Playgroud)
但真正的结果是:
app:
config1:
base:
node3: "zzz"
node1: "xxx"
node2: "yyy"
config2:
node:
street: ""
Run Code Online (Sandbox Code Playgroud)
node1并且node2不要保存缩进,Jinja2 解析器会获取最后一个节点。在下一步中,不正确的文件用于其他无法正确处理的角色。