2017-03-16 31 views

回答

1

我想你想要這樣的東西。

cond do 
    value = Map.get(map, :key) -> 
    IO.puts "Value: #{inspect value}" 
    true -> 
    IO.puts "No value" 
end 

您將需要實際分配值才能使用它。

+0

沒錯,在靈藥一切都是一個表情,說實話測試要做的是在分配'cond'的返回。如果有必要訪問外部值作爲結果 –

3

您也可以嘗試像case

case Map.get(map, :key) do 
    nil -> 
    IO.puts "No value" 

    value -> 
    IO.puts "Value: #{inspect value}" 
end 

請檢查this link如果您想了解更多信息。

編輯

這不幸的是,不夠準確,如value通過nil相關:key實際上可能。如果你想知道,如果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