Erlang基础2
1. apply
apply(Mod, Func, [Arg1, Arg2, ..., ArgN])
等价于
Mod:Func(Arg1, Arg2, ..., ArgN)
区别在于,使用apply,Mod和Func是可以算出来的。
不推荐使用apply,许多分析工具都无法得知发生了什么,编译器优化也可能不管用。
2.元数
函数参数的数量叫做元数。
函数名相同,元数不同,算是不同的函数。
3.属性
模块属性的语法是-XXX(...).
-module(modname). 模块声明,必须是第一个属性。必须跟文件名一样。
-import(Mod,[Name1/Arity1, Name2/Arity2,...]) 导入了之后,就无需指定模块名了。
-export([Name1/Arity1, Name2/Arity2, ...]). 导出了之后,模块外可以使用这些函数了。
-compile(Options). 添加Options到编译器选项列表中。
-vsn(Version). 指定模块版本号
用户定义属性 -XXX(Vaule). 好像没什么不同啊。
自定义的属性,会表现为{attributes, ...}的下属数据。
通过module_info()函数可以返回一个属性列表,内含所有与编译模块相关的元数据。
module_info(X)可以返回单个属性
beam_lib:chunks("attrs.beam",[attributes]).在不载入模块代码的情况下提取属性
4.块表达式
使用 begin ... end 包着,就像C++的{}一样。
5.注释 %,没有块注释
6.动态代码载入
每次调用函数的时候,都是最新的程序。
更新后,旧版本的程序还在运行,但是erlang只会运行两个版本的程序。
如果再多一个新版本,最旧的就会被清除。
7.包含文件
-include(Filename). 一般是包含.hrl文件。
8.++表示列表相加,--表示列表相减
相减的时候,如果重复出现的元素,只会移除对应的次数,而不一定是全部移除。
9.宏
-define(XXX,YYY).把?XXX替换成YYY。记得要使用?
-undef(Macro). 取消宏的定义
-ifdef(Macro). 仅当有过定义时才执行后面的代码。
-ifndef(Macro). 仅当Macro未定义才执行后面的代码。
-else.
-elseif
含义跟C++的差不多
10.数字
整数:
K进制整数,K#Digits,最高进制数是36。
其实更加高的也可以,只是无法输入和输出显示而已。
11.比较
> 大于 < 小于
=< 小于等于 >= 大于等于
== 等于,只有比较整数和浮点数的时候才用
/= 不等于
=:= 完全相等,一般情况下应该用这个
=/= 不完全相等
12.以_开头的变量,声明了,不使用,编译器也不会发警告。
Erlang基础2的更多相关文章
- Erlang基础 -- 介绍 -- Wordcount示例演示
在前两个blog中,已经说了Erlang的历史.应用场景.特点,这次主要演示一个Wordcount的示例,就是给定一个文本文件,统计这个文本文件中的单词以及该单词出现的次数. 今天和群友们讨论了一个问 ...
- Erlang基础 -- 介绍 -- Erlang特点
前言 Erlang是具有多重范型的编程语言,具有很多特点,主要的特点有以下几个: 函数式 并发性 分布式 健壮性 软实时 热更新 递增式代码加载 动态类型 解释型 函数式 Erlang是函数式编程语言 ...
- Erlang基础 -- 介绍 -- 历史及Erlang并发
前言 最近在总结一些Erlang编程语言的基础知识,拟系统的介绍Erlang编程语言,从基础到进阶,然后再做Erlang编程语言有意思的库的分析. 其实,还是希望越来越多的人关注Erlang,使用Er ...
- Erlang基础知识集锦
http://wenku.baidu.com/link?url=or-8mkUYUM0uVeqCYESGe93YIlh2IDLP7lFOwRlwr8Syf3PeHbwJC5DPCErs4NFrb1p4 ...
- erlang 基础知识
一 数据类型 1. 整数 Integer Erlang可表示任意大的整数,大整数自动转换成bignums类型,比固定大小的整数类型相对效率较低. Base#Value 表示基数不是10的整数.如:2# ...
- [Erlang 0126] 我们读过的Erlang论文
我在Erlang Resources 豆瓣小站上发起了一个征集活动 [链接] ,"[征集] 我们读过的Erlang论文",希望大家来参加.发起这样一个活动的目的是因为Erlang相 ...
- erlang文章博客推荐
博客排名不分先后. 诸霸,http://blog.yufeng.info/. 淘宝核心系统资深技术专家,真的是专家,了解erlang已不久局限于erlang,而且现在也一直在更新技术博文,和陈晧一样. ...
- Erlang 参考资料
Erlang 官方文档 Distributed Erlang Erlang 教程中文版 %设定模块名 -module(tut17). %导出相关函数 -export([start_ping/1, st ...
- [Erlang07] Erlang 做图形化编程的尝试:纯Erlang做2048游戏
用Erlang久了,以为erlang做类似于As3,JS的图形化界面是绝对不可能的,多少次,多少次想用erlang做个炫酷的图形游戏.终于:折腾出来了结果:纯Erlang也可以做到! 因为以前接触过W ...
随机推荐
- 记一个bootstrap定制container导致页面X轴出现横向滚动条的坑
壹 ❀ 引 在bootstrap定制时,因为UI给的图纸的页面主体部分宽度为1200px,所以我将container容器宽度从默认的1170px改成了1200px,随后在页面缩小的调试过程中发现了页 ...
- IT兄弟连 HTML5教程 了解HTML5的主流应用2
3 与用户交互的特效 十多年前做一个页面,只要结构清晰并且内容呈现完整,就是一个非常不错的网站了.而现在的用户对视觉的体验要求越来越高,在用户的潜意识中,页面做的越炫则代表公司实力越强.不管是整体页 ...
- Unity BehaviorDesigner行为树基础总结
BehaviorDesigner——行为树,用于控制和实现AI逻辑,类似于这样: 上面这个行为树实现了这样的逻辑: 当Player有Input时按照Input值来移动,无Input时查找最近的可攻击目 ...
- Unity TextMeshPro 一键生成工具
本文参考了这片博客文章,在此基础上进行优化和改进: https://blog.csdn.net/akof1314/article/details/80868869 先截张效果图: TextMeshPr ...
- 【Linux命令】EOF自定义终止符
EOF自定义终止符用法 我们在脚本中经常会发现使用EOF的情况.EOF可以结合cat命令对内容进行追加.比如:执行脚本的时候,需要往一个文件里自动输入多行内容.如果是少数的几行内容,可以用echo命令 ...
- 【干货】SqlServer 总结几种存储过程分页的使用
就我而言写代码最烦的就是处理数据,其中之一就是分页的使用. 有的代码写多了,总结出一套适用自己的分页方法:有的查一下资料借鉴一下套用起来也达到目的. 那么小编在这里给大家总结几个方法供大家做一下参考. ...
- image-webpack-loader包安装报错解决
在家里安装这个包,总是报错安装失败,换成最快的淘宝镜像也是如此,先卸载重新安装亦是如此,于是想到了原因,到了公司,公司的网是可以连接国外的,安装成功了! 也就是说,需要翻墙才可以装成功.
- Xcode 11新建工程.--iOS 13 SceneDelegate适配
收录文章::::::::::::::: iOS 13 适配要点总结 在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会出现黑屏现象.原因: Xcode 11 默认 ...
- CarTool 使用,获取图片资源
程序:gitHub: 项目地址 使用方法: 1.拿到资源包 在itunes里找到喜欢的应用,然后下载,直接将app拖到桌面.得到一个一个ipa资源包,如图 2.将资源包改成zip格式 3.解压zip资 ...
- Python使用DB-API操作MySQL数据库
Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库.与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要替 ...