是否可以访问条件导致的值?例如:
cond do
Map.get(values, :foo) ->
IO.puts "Value: #{foo}"
true ->
IO.puts "No value"
end
答案 0 :(得分:3)
你也可以试试case
:
case Map.get(map, :key) do
nil ->
IO.puts "No value"
value ->
IO.puts "Value: #{inspect value}"
end
如果您想了解更多信息,请查看this link。
修改强>
遗憾的是,这不够准确,因为与value
相关的:key
实际上可能是nil
。如果您想确定value
中是否存在map
,然后才使用它,您可以尝试Map.fetch/2
:
map = %{key: nil}
case Map.fetch(map, :key) do
{:ok, value} ->
IO.puts "Value: #{inspect value}"
:error ->
IO.puts "No value"
end
答案 1 :(得分:1)
我想你想要这样的东西。
cond do
value = Map.get(map, :key) ->
IO.puts "Value: #{inspect value}"
true ->
IO.puts "No value"
end
您需要实际分配值才能使用它。