Elixir:
使用YAML工作
如何操作:
Elixir默认不包含内建的YAML支持。然而,你可以使用第三方库,如yamerl
或yaml_elixir
来处理YAML。这里,我们将重点关注yaml_elixir
,因为它的易用性和全面的特性。
首先,将yaml_elixir
添加到你的mix.exs依赖中:
defp deps do
[
{:yaml_elixir, "~> 2.9"}
]
end
然后,运行mix deps.get
来获取新的依赖。
读取 YAML
给定一个简单的YAML文件,config.yaml
,内容如下:
database:
adapter: postgres
username: user
password: pass
你可以这样读取这个YAML文件并将其转换为Elixir map:
defmodule Config do
def read do
{:ok, content} = YamlElixir.read_from_file("config.yaml")
content
end
end
# 示例使用
Config.read()
# 输出:
# %{
# "database" => %{
# "adapter" => "postgres",
# "username" => "user",
# "password" => "pass"
# }
# }
写入 YAML
要将一个map写回YAML文件:
defmodule ConfigWriter do
def write do
content = %{
database: %{
adapter: "mysql",
username: "root",
password: "s3cret"
}
}
YamlElixir.write_to_file("new_config.yaml", content)
end
end
# 示例使用
ConfigWriter.write()
# 这将创建或覆盖`new_config.yaml`,内容为指定的内容
注意,yaml_elixir
允许在YAML文件和Elixir数据结构之间直接转换,这使它成为需要处理YAML数据的Elixir程序员的绝佳选择。