1
在下面的代碼中structList是一個結構體列表,其中每個key
是模板中的字符串,value
是替換。這個Enum.reduce和String.replace組合的正確公式是什麼?
%ParamStruct{default: "Greater London", description: "Region",
key: "ca_cert_subj_state", label: "State/County", order: 99, required: false,
value: "Greater London"}
在
key
上面的一個
所以是ca_cert_subj_state
和值是Greater London
這是其中置換例等取得的字符串:
sslCmd = """
openssl req -x509 -new -nodes -sha256 \
-key {{key-file-pass}}.key \
-days 3650 \
-out {{key-file-pass}}.pem \
-subj ""\
/C={{ca_cert_subj_country}}\
/ST={{ca_cert_subj_state}}\
/L={{ca_cert_subj_location}}\
/O={{ca_cert_subj_organization}}\
/OU={{ca_cert_subj_org_unit}}\
/CN={{ca_cert_subj_common_name}}\
/emailAddress={{ca_cert_email}}\
"""
Enum.reduce(structList, sslCmd, fn(x, sslCmd) -> sslCmd = String.replace(sslCmd, "{{#{x.key}}}", x.value)
end)
這個代碼理應積累在sslCmd中更改字符串的結果,但顯然不起作用。我不知道它應該如何遞歸或迭代。有任何想法嗎?