http://blog.csdn.net/anghlq/article/details/6803332

ErLang语法约定:

  • 大写字母开头的名字(比如Address),表示一个变量,包括参数、局部变量等;
  • 小写字母开头的单词(比如ok),表示一个常量,叫做atom(原子的意思),包括常量名、函数名、模块名等。
  • ErLang的注释用%开头。ErLang用下划线“_”表示任意变量,类似于Java的switch语法里面的default选项。
  • 参数中没使用到的变量用下杠和首字母大写,如_Sample

比较符

op Description
== equal to
/= not equal to
=< less than or equal to
< less than
>= greater than or equal to
> greater than
=:= exactly equal to
=/= exactly not equal to
1> 1==1.0.
true
2> 1=:=1.0.
false 运算符
op Description Argument type
+ unary + number
- unary - number
+   number
-   number
*   number
/ floating point division number
bnot unary bitwise not integer
div integer division integer
rem integer remainder of X/Y integer
band bitwise and integer
bor bitwise or integer
bxor arithmetic bitwise xor integer
bsl arithmetic bitshift left integer
bsr bitshift right integer
7> 2#10 band 2#01.
0
8> 2#10 bor 2#01.
3
 

Boolean表达式

op Description
not unary logical not
and logical and
or logical or
xor logical xor

短路表达式

Expr1 orelse Expr2
Expr1 andalso Expr2

case A >= -1.0 andalso math:sqrt(A+1) > B of

列表表达式

++
--

1> [1,2,3]++[4,5].
[1,2,3,4,5]
2> [1,2,3,2,1,2]--[2,1,2].
[3,1,2]

二进制表达式

<<>>
<<E1,...,En>>

Ei = Value |
     Value:Size |
     Value/TypeSpecifierList |
     Value:Size/TypeSpecifierList

TypeSpecifierList 
  • Type= integer | float | binary | bytes |bitstring | bits | utf8 | utf16 | utf32
  • Signedness= signed | unsigned
  • Endianness= big | little | native
    Unit= unit:IntegerLiteral
11> <<G,H/bitstring>> = <<1,17,42:12>>.
<<1,17,1,10:4>>
12> H.
<<17,1,10:4>>
13> <<1024/utf8>>.
<<208,128>>
赋值时注意增加空格 B=<<1>> 会变成语法错误,因为跟比较符号=<冲突、、

<<"--\r\n", Data/binary>>,

strchr(Bin, C, I) ->
    case Bin of
        <<_X:I/binary>> ->
            0;
        <<_X:I/binary, C, _Rest/binary>> ->
            I+1;
        _ ->
            strchr(Bin, C, I+1)
    end.

parse_boolean(Value) ->
    case Value of
        true -> true;
        false -> false;
        <<"true">> -> true;
        <<"false">> -> false;
        <<"1">> -> true;
        <<"0">> -> false;
        1 -> true;
        0 -> false
    end.

<<N1:32/integer, N2:32/float>> = Bin.
<< PointID:32/unsigned-little-integer, Value:32/little-float>> = Bin.
case Packet of
    <<Len:16,  PayLoad:Len/binary, 16#ef>> ->
        {body, PayLoad};
    _ ->
        {error, invalid_packet}
end.
    case Info of    
        <<"get ",Str1/bitstring>>->
            io:format("case0:~s~n", [binary_to_list(Str1)]);
        <<1:1,Str1/bitstring>>->
            io:format("case1:~s~n", [Str1])
    end.

erlang 符号相关基本语法的更多相关文章

  1. -bash: 未预期的符号 `(' 附近有语法错误

    [1]问题现象 -bash: 未预期的符号 `(' 附近有语法错误 [2]解决方案 给括号前面加反斜杠即可 Good Good Study, Day Day Up. 顺序 选择 循环 总结

  2. Erlang使用相关笔记

    #从源码编译安装Erlang 1. wget http://www.erlang.org/download/otp_src_r16b.tar.gz -p /usr/local/src 2. tar z ...

  3. WinDbg常用命令系列---符号相关命令

    ld (Load Symbols) ld命令加载指定模块的符号并更新所有模块信息. ld ModuleName [/f FileName] 参数: ModuleName指定要加载其符号的模块的名称.m ...

  4. MVC4相关Razor语法浅谈

    1._LayOut.cshtml 文件为mvc的布局文件,里面包函的是htm的静态文件,作为mvc其他view的基础母版使用,子视图要不想想调用它只需在页面设置@{Layout=null;}即可,现对 ...

  5. MVC4相关Razor语法以及Form表单

    Razor的布局(Layout) 默认建的工程都自带的了一个_ViewStart.cshtml文件,文件里面的代码如下: @{ Layout = "~/Views/Shared/_Layou ...

  6. erl_0011 erlang 定时器相关

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20764167&id=4470124 3.1  The time ...

  7. oracle linux下oracle 10g启动EM、isqlplus及相关命令语法

    转载:http://hancang2000.blog.sohu.com/139239421.html ORACLE_HOME/bin/emctl start dbconsole $ORACLE_HOM ...

  8. MVC4相关Razor语法以及Form表单(转载)

    Razor的布局(Layout) 默认建的工程都自带的了一个_ViewStart.cshtml文件,文件里面的代码如下: @{ Layout = "~/Views/Shared/_Layou ...

  9. Python 3 re模块3个括号相关的语法

    (?aiLmsux) (One or more letters from the set 'a', 'i', 'L', 'm', 's', 'u', 'x'.) The group matches t ...

随机推荐

  1. Android Studio将Eclipse的项目作为module的依赖库

    情形: 我们现在有一个eclipse的项目,我们想把这个项目作为android studio的module的一个依赖库. 以前我们在eclipse的时候常常是在一个工作区里面把一个A工程 as a l ...

  2. IOS系统不兼容position: fixed;属性的解决方案

    position: fixed;属性在IOS系统手机上会有很明显的抖动,解决方式: 只需要在中间部分外层div添加css样式position:fixed;top:50px; bottom:50px;o ...

  3. COdeVS——T 1082 线段树练习 3 (分块练习)

    http://codevs.cn/problem/1082/ 时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解       题目描述 Descriptio ...

  4. amazeui学习笔记--css(常用组件5)--评论列表Comment

    amazeui学习笔记--css(常用组件5)--评论列表Comment 一.总结 1.am-comment:使用am-comment来声明评论对象,这个是放在article里面的,虽然article ...

  5. Docker使用Dockerfile创建Centos(tomcat+jdk)镜像

    原文链接:https://blog.csdn.net/qq_37936542/article/details/80824389 Docker构建镜像的方法主要有两种:    (1)使用docker c ...

  6. 【剑指offer】对面和相等的正方体

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/26509459 剑指offer上的全排列相关题目. 输入一个含有8个数字的数组.推断有么有可 ...

  7. NodeJS服务端重构计划

    不知不觉做node开发已经半年时间了.这期间写尝试着去攻克了一些问题.实现了一下想法,也遇到过一些坑. 是时候来梳理一下代码,规划一下接下来的工作. 现阶段我们的nodeserver端代码结构是这种: ...

  8. tensorflow:图(Graph)的核心数据结构与通用函数(Utility function)

    Tensorflow一些常用基本概念与函数(2) 1. 图(Graph)的核心数据结构 tf.Graph.__init__:建立一个空图: tf.Graph.as_default():一个将某图设置为 ...

  9. linux的几个内核镜像格式Image 和 u-boot启动内核和文件系统时的一些环境变量的设置

    关于编译powerpc linux的几个Image参考原文 http://blog.sina.com.cn/s/blog_86a30b0c0100wfzt.html 转载▼   PowerPC架构 L ...

  10. JS-OO-数据属性,访问器属性

    一.数据属性 Configurable:表示能否通过Delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性.默认true. Enumerable:表示能否通过for-in ...