zoukankan      html  css  js  c++  java
  • 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>> 会变成语法错误,因为跟比较符号=<冲突、、

    <<"-- ", 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.

  • 相关阅读:
    POJ 3422 Kaka's Matrix Travels(最小费用最大流)
    POJ 2195 Going Home(最小费用最大流)
    POJ 3694 Network(双连通分量)
    POJ 2942 Knights of the Round Table(双连通分量)
    POJ 1275 Cashier Employment(差分约束)
    Codeforces Round #224 (Div. 2)
    POJ 2983 Is the Information Reliable?(差分约束系统)
    POJ 3159 Candies(差分约束)
    学习笔记之设计模式 | 菜鸟教程
    学习笔记之编译器的工作过程 | 菜鸟教程
  • 原文地址:https://www.cnblogs.com/fvsfvs123/p/4208060.html
Copyright © 2011-2022 走看看