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 (摔,这个基础概念都能忘记)


lists:keyfind 文档中给出的匹配规则是 Searches the list of tuples TupleList for a tuple whose Nth element compares equal to Key

这里回到基础概念
erlang 中
== 是equal                     1.0 == 1  true
=:= 是 exactly equal        1.0 =:= 1 false
所以lists:keyfind时会查找到结果,但是在匹配时就找不到对应项。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值