• 简单的讲Erlang一些运营商


    Erlang 有几个运营商。对照、数学运算符、布尔运算符,旨在使这些类型的操作者的讨论,参考erlang文件,以样例说明。

    Erlang的比較运算符
    写法例如以下:
    Expr1 op Expr2
    1> 1 == 1.
    true
    op Description
    == 等于
    /= 不等于
    =< 小于或等于
    < 小于
    >= 大于或等于
    > 大于
    =:= 恒等于
    =/= 恒不等于
    以=:=和==为例,说明恒等于和等于的差别:
    2> 1 == 1.0.
    true
    3> 1 =:= 1.0.
    false
    不同类型比較会有什么结果?
    针对不同数据类型比較。例如以下:
    number < atom < reference < fun < port < pid < tuple < list < bit string
    就是说,[] > 0结果是true

    Erlang的数学运算符
    有两种写法,例如以下:
    op Expr
    Expr1 op Expr2
    4> + 1.
    
    1
    
    5> 1 + 1.
    
    2
    op Description Argument type
    + 一元 + number
    - 一元 - number
    + 加法 number
    -
    减法
    number
    *
    乘法
    number
    / 浮点除法 number
    div
    整数除法
    integer
    bnot 一元 not 位运算 integer
    rem 整数求余 integer
    band 与运算 integer
    bor 或运算 integer
    bxor 异或运算 integer
    bsl 左移运算 integer
    bsr 右移运算 integer

    样例例如以下:

    6> +1.
    1
    7> -1.
    -1
    8> 1+1.
    2
    9> 4/2.
    2.0
    10> 5 div 2.
    2
    11> 5 rem 2.
    1
    12> 2#10 band 2#01.
    0
    13> 2#10 bor 2#01.
    3
    14> 8 bsr 1.
    
    4
    
    15> 8 bsl 1.
    
    16

    Erlang的布尔运算符
    写法例如以下:
    op Expr
    Expr1 op Expr2
    op Description
    not 一元逻辑非
    and 逻辑与
    or 逻辑或
    xor 逻辑异或
    样例:
    16> not true.
    false
    17> true and false.
    false
    18> true xor false.
    true
    
    另外。还有两个布尔运算符 orelse 和 andalso,这两个用于短路运算,写法例如以下:
    Expr1 orelse Expr2
    Expr1 andalso Expr2

    什么是短路运算?

    样例:

    Expr1 and Expr2

    Expr1 andalso Expr2

    对于and运算,假设Expr1为假。还会继续运行Expr2,然后再判定表达式为假;而andalso运算,当Expr1为假就判定表达式为假,不再运行Expr2,所以这里andalso效率比較高。



    參考:

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    python:xlrd模块
    psql:转:会引起全表扫描的10种sql语句
    Linux相关
    面试题
    Siege Web服务器性能压力测试工具
    Nginx+uWSGI+Supervisor配置
    SQLAlchemy
    Virtualenv创建虚拟环境
    算法
    Mac常用快捷键
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4680710.html
Copyright © 2020-2023  润新知