`
vivimusing
  • 浏览: 79870 次
  • 性别: Icon_minigender_1
  • 来自: 台州
社区版块
存档分类
最新评论

erlang中一点感觉

阅读更多

长期在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中一个较少使用但功能强大的特性。它有助于代码的模块化和代码复用,因为不同的模块可以实现同一个行为,从而提供相同的行为但具体实现不同的功能。通过将行为和参数化模块结合,可以实现更高层次的抽象和...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    erlang资源

    《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发基于轻量级进程(Lightweight Processes, LSPs),这些进程间的通信通过消息传递实现,这与传统的线程模型不同,具有更好的隔离性和...

    Erlang官网下载过慢

    Erlang的下载过程中,你可以考虑以下几点: 1. 检查网络连接:确保网络稳定且速度足够。 2. 使用代理:如果你在公司或特定区域,可能需要通过代理服务器访问外部资源。 3. 更换下载时间:避开网络高峰期进行下载。 4...

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...

    erlang api 最新资源

    模式匹配是Erlang中一个非常重要的特性,它是函数式编程的核心概念之一。通过模式匹配,函数可以根据参数的结构和内容来选择不同的执行路径,而不需要使用传统的if-else或switch-case条件语句。例如,在Erlang中,...

    Erlang 20.3linux安装包

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...

    erlang programming

    在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典电信设备制造商Ericsson为解决实时通信系统需求而开发的。它采用函数式编程范式,强调纯函数和不...

    xiandiao_erlang_Erlang课后习题_

    【Erlang编程语言及其应用】 Erlang是一种并发式、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,最初用于构建高可用性、容错性和可扩展性的分布式系统。"xiandiao_erlang_Erlang课后习题_"这个压缩包文件...

    Erlang及其应用Erlang及其应用

    Erlang是一种通用编程语言和运行时环境,特别适合于并发、分布式和容错系统。由Ericsson开发的Erlang在大型电信系统中有广泛应用。它最初设计的目标就是解决分布式、高可靠性和软实时性的问题。 1. **并发与消息...

    erlang_otp_win64_25.0

    在"erlang_otp_win64_25.0"这个标题中,我们可以提取出几个关键点: 1. **Erlang**:这是一种函数式编程语言,以其在处理并发性和容错性方面的强大能力而闻名。Erlang的设计理念是让程序员能够轻松地构建能够并行...

    erlang9.rar

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...

    erlang otp25 win安装包

    erlang otp25 win安装包

    erlang深度分析.pdf

    ### Erlang深度分析知识点 #### 1. Erlang VM分析 Erlang的虚拟机(VM)即Erlang Runtime System(ERTS),是Erlang系统运行的基础。它支持轻量级进程,提供了高效的并发处理能力。在性能方面,ERTS经过优化,能够...

    erlang安装包.zip

    erlang安装包

    Erlang-otp_win64_23.0.zip

    Erlang OTP是Erlang编程语言的核心组成部分,它提供了分布式计算、并发处理、热代码升级和容错恢复等一系列强大的功能。在安装RabbitMQ,一个广泛使用的开源消息代理和队列服务器之前,通常需要先安装Erlang环境。...

    二郎助手erlang开发工具、erlang编辑器

    【二郎助手:Erlang开发的利器】 在IT领域,Erlang是一种强大的编程语言,尤其在并发处理和分布式系统方面表现出色。为了更好地支持Erlang的开发,二郎助手应运而生,它是一款专为Elang语言定制的开发工具,旨在...

Global site tag (gtag.js) - Google Analytics