- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
erlang基础知识集锦
Erlang基础知识集锦声明:此文档只作为对erlang的认知之用,如果需要学习并使用erlang请系统学习介绍erlang的书。简介Erlang是一个并行编程语言和运行时系统,最初由爱立信(Ericsson)于1987年为电信行业所开发。1998年爱立信在改良的MPL(Mozilla Public License)许可下将Erlang发布于开源社区。Erlang是:一种“小众”语言。一种函数式语言 (变量只能赋值一次)。一种动态类型语言(变量类型在运行时决定,代码需要编译后才能执行,与Python,Ruby等不一样)。一种强类型语言。一种面向并发(Concurrency Oriented)的语言。特性并发性 - Erlang支持超大量级的并发线程,并且不需要操作系统具有并发机制。分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点)。健壮性 - Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。软实时性- Erlang支持可编程的“软”实时系统,使用了递增式垃圾收集技术。热代码升级-Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。递增式代码装载-用户能够控制代码如何被装载的细节。外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。数据类型变量在erlang中的变量只能被赋值一次,变量第一个字母要是大写的。符号”=”是值类型匹配操作(带有赋值的意思)。(pattern matching)在erlang中变量是不可变的,也没有共享内存的概念,也没有锁。浮点数整数除法示例: 4 div 2。求余示例: 5 rem 2。“/”永远返回浮点数。Atoms(原子)Atoms表示不同的非数字常量值。示例: Xss = Asss。 元组将若干个以逗号分隔的值用一对大括号括起来就形成了一个元组。元组示例: Person = {person, {name, joe}, {height, 1.83}, {footsize, 42}}.从元组中提取数据:Point = {point, 10, 45}.{point, X, Y} = Point.( pattern match)此后X=10, Y=45.列表将若干个以逗号分隔的值用一对方括号括起来,就形成了一个列表。示例: ThingsToBuy = [{apple, 10}, {pear, 6}, {milk, 3}].列表中的第一个元素叫做列表头,剩下的部分叫做列表尾。一般来说列表头可以是任何东西,列表尾经常是一个列表。访问列表头元素是一个非常高效的操作。从列表中解析元素:ThingsToBuy1 = [{oranges, 4}, {newspaper, 1}|ThingsToBuy].[Buy1|ThingsToBuy2] = ThingsToBuy1.此后:ThingsToBuy1 = [{oranges,4},{newspaper,1},{apple,10},{pear,6},{milk,3}].Buy1 = {oranges,4}.ThingsToBuy2 = [{newspaper,1},{apple,10},{pear,6},{milk,3}].字符串在erlang中没有字符串,字符串仅仅是整数列表。用双引号将一串字符括起来就是一个字符串。示例: Name = Hello.5I = $s.1158 [I-32, $u, $r, $p, $r, $i, $s, $e].SurpriseErlang基本语法模块Erlang源文件是以.erl做为扩展名的,头文件是以.hrl做为扩展名的。要运行一个模块,首先要编译它,编译以后的文件是以.beam做为扩展名的。文件编译命令:c(Modulename).改变erlang的工作目录在操作系统用户文件夹下找到目前登录用户的文件夹在其中建立一个.erlang文件夹,在这个文件中写上:c:cd("you work dir"). 重启erlang shell就改变了工作路径。在erlang中符号的使用:逗号(,)用来分隔函数调用,数据构造器(列表元组中的逗号)以及模式中的参数。句号(.)(后面跟一个空白符号)用来在shell中分隔完整的函数和表达式。分号(;)用来分隔子句,在以下几种情况下都会用到子句:分段的函数定义,case子句, if语句, try…catch语句, 以及receive表达式。调用模块中的方法:Modules:ExportFunc(…)匿名函数(fun关键字)使用示例:1 Hypot = fun(X, Y) - math:sqrt(X*X + Y*Y) end.#Fun
文档评论(0)