erlang 符号相关基本语法

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.

时间: 2024-11-05 16:34:41

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

日语助词相关的语法(收集中...)

1. すら 日语助词相关的语法(收集中...)

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

转载:http://hancang2000.blog.sohu.com/139239421.html ORACLE_HOME/bin/emctl start dbconsole $ORACLE_HOME/bin/isqlplusctl start emctl常用命令语法: emctl start dbconsole启动EM console服务,使用前需要先设置ORACLE_SID环境变量 emctl stop dbconsole停止EM console服务,使用前需要先设置ORACLE_SID环

解决 .bashrc: 行 1: 未预期的符号 `(&#39; 附近有语法错误

平台:ubuntu12.04 现象:shell终端错误提示如下 .bashrc: 行 1: 未预期的符号 `(' 附近有语法错误 .bashrc: 行 1: `# ~/.bashrc: executed by bash(1) for non-login shells.' 解决:将.bashrc文件的编码格式改为UTF-8即可! 方法:(1) 将.bashrc拷贝到Windows (2)将.bashrc改为.bashrc.txt (3)打开,另存为时将编码改为UTF-8,保存即可! (4)将.ba

erlang.mk和makefile语法剖析

1. makefile 基本规则: 1. 所有的源文件没有被编译过,则对各个源文件进行编译并进行链接,生成最后的可执行程序; 2. 每一个在上次执行make之后修改过的源代码文件在本次执行make时将会 被重新编译; 3. 头文件在上一次执行make之后被修改.则所有包含此头文件的源文件在本次执行 make 时将会被重新编译. 2. 基本格式: TARGET... : PREREQUISITES... COMMAND ... 2.1 target(目标)通常是最后需要生成的文件名或者为了实现这个

Erlang使用相关笔记

#从源码编译安装Erlang 1. wget http://www.erlang.org/download/otp_src_r16b.tar.gz -p /usr/local/src 2. tar zxvf otp_src_r16b.tar.gz -c /usr/local/src 3. cd otp_src_r16b 4. ./configure --prefix=/usr/local/erlang 5. make 6. make install 7. 将"/usr/local/erlang/

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

ld (Load Symbols) ld命令加载指定模块的符号并更新所有模块信息. ld ModuleName [/f FileName] 参数: ModuleName指定要加载其符号的模块的名称.modulename可以包含各种通配符和说明符. /f FileName更改为匹配项选择的名称.默认情况下,模块名是匹配的,但使用/f时,文件名是匹配的,而不是模块名.文件名可以包含各种通配符和说明符. 调试器的默认行为是使用延迟符号加载(也称为延迟符号加载).这意味着符号在需要之前不会实际加载. 另

erlang cpu 相关参数调整

erlang 默认启动参数虽然已经比较高效,但更多的是针对电信平台实时特性,简单调整参数能够很大程度减少CPU,提高处理能力. 1. 关闭spin_wait 设置参数:+sbwt none 我上一篇文章提到:erlang 调度器CPU利用率低排查,关闭spin_wait 可能增加了调度器需要唤醒延时. 关闭后CPU 基本能够简单30%以上,且几乎没有任何副作用,调度器唤醒微妙级,延时可忽略. 2. 调度器唤醒策略 默认设置:+swt medium 默认设置下,长时间运行后部分node运行进入一种

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

Razor的布局(Layout) 默认建的工程都自带的了一个_ViewStart.cshtml文件,文件里面的代码如下: [csharp] view plaincopy @{ Layout = "~/Views/Shared/_Layout.cshtml";} 这里的  @{Layout="文件路径";}  代码块指定了整个项目默认所使用的布局文件(如图:) 左边蓝色部分显示了MVC4提供的默认的布局文件,我们看看_Layout.cshtml里面的内容: 不难看出,

MVC4相关Razor语法浅谈

1._LayOut.cshtml 文件为mvc的布局文件,里面包函的是htm的静态文件,作为mvc其他view的基础母版使用,子视图要不想想调用它只需在页面设置@{Layout=null;}即可,现对于里面的一些语法进行说明: @RenderBody()对于所有的页面默认的情况下都会使用这个布局(WebForm的模板),在页面只能调用一次,子view可以与其共享资源如js.css等: @RenderPage("url")相当于一个占位符其页面的所有内容都会被引擎渲染在这个地方.比如网页