本文主要是介绍erlang lists:keyfind的一个小坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Key = 2/2,
FindReuslt = lists:keyfind(Key, 1, [{1, 1}],
case FindReuslt of{Key, Value} ->find;false ->not_find
end.
这段代码会报没有匹配的错误
原因是 Key = 2/2 其实 Key被赋值为1.0 (摔,这个基础概念都能忘记)
这里回到基础概念
erlang 中
== 是equal 1.0 == 1 true
=:= 是 exactly equal 1.0 =:= 1 false
所以lists:keyfind时会查找到结果,但是在匹配时就找不到对应项。
这篇关于erlang lists:keyfind的一个小坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!