erlang lists:keyfind的一个小坑

2024-03-11 09:58
文章标签 lists erlang 小坑 keyfind

本文主要是介绍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时会查找到结果,但是在匹配时就找不到对应项。

这篇关于erlang lists:keyfind的一个小坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/797474

相关文章

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

erlang学习:用ETS和DETS存储数据3,保存元组到磁盘

学习内容 ETS表把元组保存在内存里,而DETS提供了把Erlang元组保存到磁盘上的方法。DETS的最大文件大小是2GB。DETS文件必须先打开才能使用,用完后还应该正确关闭。如果没有正确关闭,它们就会在下次打开时自动进行修复。因为修复可能会花很长一段时间,所以先正确关闭它们再结束程序是很重要的。 DETS表有着和ETS表不同的共享属性。DETS表在打开时必须赋予一个全局名称。如果两个或更多

erlang学习:用ETS和DETS存储数据

作用 ets和dets是两个系统模块,可以用来高效存储海量的Erlang数据。 ETS和DETS执行的任务基本相同:它们提供大型的键值查询表。ETS常驻内存,DETS则常驻磁盘。ETS是相当高效的:可以用它存储海量的数据(只要有足够的内存),执行查找的时间也是恒定的(在某些情况下是对数时间)。DETS提供了几乎和ETS一样的接口,但它会把表保存在磁盘上。因为DETS使用磁盘存储,所以它远远慢于

erlang学习:用OTP构建系统23.12练习题

练习要求 制作一个名为prime_tester_server的gen_server,让它测试给定的数字是否是质数。 你可以使用lib_primes.erl里的is_prime/2函数来处理(或者自己实现一个更好的质数测试函 数)。把它添加到sellaprime_supervisor.erl的监控树里。 质数判断server实现 -module(prime_tester_server).-b

java ee学习的小坑

程序运行出现的这一大堆错误让我抓狂,通过百度note毫无收获,我以为是我的tomcat版本太高,尝试了想用自带的服务器,但是没找到,看了错误,大概是说第一行,然后试着百度了message,结果就碰到了跟我一样的情况,很简单,就是自带的页面有好多语句,但是,我不需要那么多,所以呢,就删除了一些,但是删除之后,紧挨着了,没有空格,就引发了上面的错误。改正之后,程序运行就OK了 改正前:<%@ p

线上项目小坑

数据类型的比较 今天做个需求时:就是简单的三级分类,分类代码如下: @Overridepublic List<CategoryEntity> queryListTree(Map<String, Object> params) {List<CategoryEntity> categoryEntities = baseMapper.selectList(null);//System.out

erlang学习:用OTP构建系统2,警报管理

今日学习用OTP构建系统的警报管理, 首先进行配置错误记录器 [{sasl,[{sasl_error_logger, false},{error_logger_mf_dir, "/code/erlang/erlangstudy"},{error_logger_mf_maxbytes, 10485760},{error_logger_mf_maxfiles, 10}]}]. 警报处理器gen

erlang学习:用OTP构建系统1

书上案例学习并测试 23.1 通用事件处理 -module(event_handler).%% API-export([make/1, add_handler/2, event/2]).%% 制作一个“什么都不干”的事件处理器Name(一个原子)。这样消息就有地方发送了。make(Name) ->register(Name, spawn(fun() -> my_handler(fun n

Leetcode43: Merge Two Sorted Lists

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 用归并排序的思想。 /*** Definition for singly-linked list.* str

mybatis框架order by作为参数传入时失效小坑

mxl中的语句如下 <select id="statToday" resultType="com.dahua.la.business.model.vo.StatSysResultVO">select a,b,count(1) as totalfrom tablewhere a is not nulland b is not nulland operateTime >= #{startTime,