Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir中条件语句中的访问值_Elixir - Fatal编程技术网

Elixir中条件语句中的访问值

Elixir中条件语句中的访问值,elixir,Elixir,是否可以访问某个条件的结果值?例如: cond do Map.get(values, :foo) -> IO.puts "Value: #{foo}" true -> IO.puts "No value" end 我想你想要这样的东西 cond do value = Map.get(map, :key) -> IO.puts "Value: #{inspect value}" true -> IO.

是否可以访问某个条件的结果值?例如:

cond do
    Map.get(values, :foo) ->
        IO.puts "Value: #{foo}"
    true ->
        IO.puts "No value"
end

我想你想要这样的东西

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

您需要实际分配值才能使用它。

我想您需要这样的值

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

您需要实际分配值才能使用它。

您也可以尝试
case
如下:

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

  value ->
    IO.puts "Value: #{inspect value}"
end
如果您想了解更多信息,请检查

编辑

不幸的是,这不够准确,因为与
:key
相关的
值实际上可能由
nil
确定。如果您想确定
是否存在于
map
中,然后才使用它,您可以尝试:


您也可以尝试以下方法:

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

  value ->
    IO.puts "Value: #{inspect value}"
end
如果您想了解更多信息,请检查

编辑

不幸的是,这不够准确,因为与
:key
相关的
值实际上可能由
nil
确定。如果您想确定
是否存在于
map
中,然后才使用它,您可以尝试:


确切地说,在elixir中,一切都是一个表达,告诉我们真相,测试的任务是在
cond
返回时赋值。如果有必要访问外部的值,那么实际上,在elixir中,一切都是一个表达式,用来告诉真相,测试要做的事情是在
cond
返回时赋值。如果有必要访问结果外部的值