如何在Elixir中从方法参数图中获取单个参数?
def do_something(%{"my_params" => params}) do
IO.puts "this is your param = #{my_params[param_name]}"
IO.puts "this is your param = #{my_params[:param_name]}"
IO.puts "this is your param = #{my_params.param_name}"
end
如果数量很少,最好将它们模式匹配到位:
def do_something(%{"my_params" => %{"param_name" => value}) do
IO.inspect value, label: "this is your param"
end
花了我一点点才找到,这很简单。 映射语法。
def do_something(%{"my_params" => params}) do
IO.puts "this is your param = #{my_params["param_name"]}"
end
取决于你需要什么。
如果不希望在键不存在时出错,请使用 my_params[:param_name]
(在这种情况下将返回 nil(,否则my_params.param_name
.
如果需要在密钥不存在时使用默认值,请使用 Map.get(map, key, default \ nil)
。