小编Ale*_*oba的帖子

“案例X做”始终是第一个选择

我循环访问值列表,并且在列表中有一个案例可以选择应返回的值。代码循环代码如下所示:

value = code &&& key
IO.puts "+++++"
IO.puts "key:#{key},code:#{code},code &&& key:#{value},value == key:#{value == key}"
case value do
  key -> IO.puts "value is true"
  _ -> IO.puts "value is false"
end
Run Code Online (Sandbox Code Playgroud)

这些调用的日志输出为:

+++++
key:1,code:1,code &&& key:1,value == key:true
value is true
+++++
key:2,code:1,code &&& key:0,value == key:false
value is true
+++++
key:4,code:1,code &&& key:0,value == key:false
value is true
+++++
key:8,code:1,code &&& key:0,value == key:false
value is true
+++++
key:16,code:1,code &&& key:0,value == key:false
value is true
Run Code Online (Sandbox Code Playgroud)

我总是得到“值是true”,并且我们可以清楚地看到case值是false。这里会发生什么?

谢谢你的帮助。

elixir

2
推荐指数
1
解决办法
41
查看次数

为什么字符列表不会显示为列表?

我正在尝试使用该Enum.map函数迭代一个字符列表,但它的行为与我期望的行为不同。

第一行不将字符列表视为字符列表,在第二行中我不明白为什么修改匿名函数会这样做。

iex(32)> Enum.map('ABCD',fn(char)->char end)  
'ABCD'
iex(33)> Enum.map('ABCD',fn(char)->[char] end)
['A', 'B', 'C', 'D']
Run Code Online (Sandbox Code Playgroud)

我期待第一行返回['A','B','C','D'],第二行返回[['A'],['B'],['C'],['D']]。为什么不是这种情况?

elixir

0
推荐指数
1
解决办法
160
查看次数

标签 统计

elixir ×2