长期在OOP下编程,现在转过来学习写erlang,感觉有点怪怪的,动笔写erlang程序的,发现一直没啥头绪。不过我还是习惯性的把erlang代码面向对象进行构思。那么通过http://www.iteye.com/wiki/erlang/1434-erlang-39-s-oo-and-java-39-s-oo 这篇文章,基本能入门 写erlang程序了。
OO过程中不是习惯抽象类出来么,给模块一个loop,那么创建loop的函数就是这个对象的构造函数了,例如
-module(some_module).
-complie(export_all).
1、创建一个对象:
new()->
loop().
我们就可以Obj = some_module:new(). 得到这个对象了,事实上,这个Obj就是个Pid。
2、函数调用:
然后,编写这个类中的对象函数就只要在这个loop中添加一个receive 的循环,向这个循环中发送一个消息就是相当于调用这个对象的函数。比如我在loop中这样写:
receive
{method_name,Return_to,Args}->
the_method_handle(Return_to,Args),
loop().
the_method_handle(Return_to,Args)->
%这里我把Args处理成为Return_Value
Return_to ! Return_Value.
然后我们就可以使用Obj ! {some_method,self(),Args}.来调用这个对象函数了,然后在代码后面写个receive循环用来接收Return_Value.
3、类函数:
可以类比new()这个函数怎么创建的,我们还可以继续在这个模块中添加一些方法,用some_module:some_class_method()调用,用起来感觉就类函数一样了。
4、属性:
属性是一个可变状态,erlang中一个概念就变量是不可变状态,不然很多erlang的优势就体现不出来了。erlang中处理的数据应该是一个瞬间状态,想像下这个时间够短暂,快到所有的状态都是不可变,然后我们把处理的结果交给外界,保持对象本身的纯净。短暂状态变量的可以放在进程字典中,需要长久保存可以存放在内存数据库或者硬盘数据库中。
分享到:
相关推荐
这是Erlang中一个较少使用但功能强大的特性。它有助于代码的模块化和代码复用,因为不同的模块可以实现同一个行为,从而提供相同的行为但具体实现不同的功能。通过将行为和参数化模块结合,可以实现更高层次的抽象和...
**Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...
《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发基于轻量级进程(Lightweight Processes, LSPs),这些进程间的通信通过消息传递实现,这与传统的线程模型不同,具有更好的隔离性和...
Erlang的下载过程中,你可以考虑以下几点: 1. 检查网络连接:确保网络稳定且速度足够。 2. 使用代理:如果你在公司或特定区域,可能需要通过代理服务器访问外部资源。 3. 更换下载时间:避开网络高峰期进行下载。 4...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...
Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...
Erlang/OTP 26.2.1,Erlang,OTP,26.2.1
模式匹配是Erlang中一个非常重要的特性,它是函数式编程的核心概念之一。通过模式匹配,函数可以根据参数的结构和内容来选择不同的执行路径,而不需要使用传统的if-else或switch-case条件语句。例如,在Erlang中,...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...
在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典电信设备制造商Ericsson为解决实时通信系统需求而开发的。它采用函数式编程范式,强调纯函数和不...
【Erlang编程语言及其应用】 Erlang是一种并发式、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,最初用于构建高可用性、容错性和可扩展性的分布式系统。"xiandiao_erlang_Erlang课后习题_"这个压缩包文件...
Erlang是一种强大的编程语言,特别适合于构建高并发、分布式和容错性强的系统。由爱立信的CS-Lab开发,Erlang的设计目标是处理大规模并发活动,这在传统的操作系统上可能非常困难。它的核心特性使其在处理并发性、...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...
在"erlang_otp_win64_25.0"这个标题中,我们可以提取出几个关键点: 1. **Erlang**:这是一种函数式编程语言,以其在处理并发性和容错性方面的强大能力而闻名。Erlang的设计理念是让程序员能够轻松地构建能够并行...
### Erlang深度分析知识点 #### 1. Erlang VM分析 Erlang的虚拟机(VM)即Erlang Runtime System(ERTS),是Erlang系统运行的基础。它支持轻量级进程,提供了高效的并发处理能力。在性能方面,ERTS经过优化,能够...
erlang otp25 win安装包
erlang安装包
【二郎助手:Erlang开发的利器】 在IT领域,Erlang是一种强大的编程语言,尤其在并发处理和分布式系统方面表现出色。为了更好地支持Erlang的开发,二郎助手应运而生,它是一款专为Elang语言定制的开发工具,旨在...