网站首页ruby学习

ruby特有的运算符

发布时间:2015-09-07编辑:Vincent H阅读(762)

    算术运算符:

      **:指数 - 执行指数计算。  2**3=8


    比较运算符:

     <=>:联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。   (a <=> b) 返回 -1。

     ===:用于测试 case 语句的 when 子句内的相等。   (1...10) === 5 返回 true。

     .eql?:如果接收器和参数具有相同的类型和相等的值,则返回 true。        1 == 1.0 返回 true,但是 1.eql?(1.0) 返回 false。

     equal?:如果接收器和参数具有相同的对象 id,则返回 true。  如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,a.equal?bObj 返回 false,但是 a.equal?aObj 返回 true。


    赋值运算符:

     +=:加且赋值运算符,把右操作数加上左操作数的结果赋值给左操作数     a += 1 相当于 a = a + 1(相当于a++)

     (-=,*=,/=,%=,**=)类似


    并行赋值:

     a,b,c=10,20,30 => a=10,b=20,c=30 

    位运算符:

    运算符描述实例
    &如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。(a & b) 将得到 12,即为 0000 1100
    |如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。(a | b) 将得到 61,即为 0011 1101
    ^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。(a ^ b) 将得到 49,即为 0011 0001
    ~二进制补码运算符是一元运算符,具有"翻转"位效果。(~a ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
    <<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。a << 2 将得到 240,即为 1111 0000
    >>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。a >> 2 将得到 15,即为 0000 1111


    逻辑运算符:

     and(&&): 逻辑与运算符。

     or(||):逻辑或运算符。

     not(!):逻辑非运算符。


    范围运算符:

     ..:创建一个从开始点到结束点的范围(包含结束点)  1..5=1,2,3,4,5

     ...:创建一个从开始点到结束点的范围(不包含结束点) 1...=1,2,3,4



    defined?运算符:以方法调用的形式来判断传递的表达式是否已定义。它返回表达式的描述字符串,如果表达式未定义则返回 nil。

    defined? variable # 如果 variable 已经初始化,则为 True

    点运算符 "." 和双冒号运算符 "::"

    通过在方法名称前加上模块名称和一条下划线来调用模块方法。您可以使用模块名称和两个冒号来引用一个常量。

    :: 是一元运算符,允许在类或模块内定义常量、实例方法和类方法,可以从类或模块外的任何地方进行访问。

    您只需要在表达式的常量名前加上 :: 前缀,即可返回适当的类或模块对象。

    如果未使用前缀表达式,则默认使用主 Object 类。


    MR_COUNT = 0        # 定义在主 Object 类上的常量module Foo
    MR_COUNT = 0
    ::MR_COUNT = 1    # 设置全局计数为 1
    MR_COUNT = 2      # 设置局部计数为 2endputs MR_COUNT       # 这是全局常量
    puts Foo::MR_COUNT  # 这是 "Foo" 的局部常量

    Ruby 运算符的优先级

    下表按照运算符的优先级从高到低列出了所有的运算符。

    方法运算符描述
    ::常量解析运算符
    [ ] [ ]=元素引用、元素集合
    **指数
    ! ~ + -非、补、一元加、一元减(最后两个的方法名为 +@ 和 -@)
    * / %乘法、除法、求模
    + -加法和减法
    >> <<位右移、位左移
    &位与
    ^ |位异或、位或
    <= < > >=比较运算符
    <=> == === != =~ !~相等和模式匹配运算符(!= 和 !~ 不能被定义为方法)

    &&逻辑与

    ||逻辑或

    .. ...范围(包含、不包含)

    ? :三元 if-then-else

    = %= { /= -= += |= &= >>= <<= *= &&= ||= **=赋值

    defined?检查指定符号是否已定义

    not逻辑否定

    or and逻辑组成

    注意:在方法列标识为 是 的运算符实际上是方法,因此可以被重载。



    收录情况:百度已收录,点击查看详情
    本文地址:http://luvial.cn/content/10020.html
    转载请保留原文地址!

    如果您觉得本文对您有帮助,且您有经济能力,欢迎捐助本站
标签: ruby 运算符
上一篇:ruby变量
下一篇:ruby判断