美文网首页
Ruby 运算符

Ruby 运算符

作者: Colleen_oh | 来源:发表于2019-11-08 16:50 被阅读0次

    普通的和其他语言没有很大区别的运算符就不说了,这里只说比较特殊的运算符。

    Ruby 比较运算符

    Ruby 赋值运算符

    Ruby 逻辑运算符

    Ruby 三元运算符

    有一个以上的操作称为三元运算符。第一个计算表达式的真假值,然后根据这个结果决定执行后边两个语句中的一个。条件运算符的语法如下:


    Ruby 范围运算符

    在 Ruby 中,序列范围用于创建一系列连续的值 - 包含起始值、结束值(视情况而定)和它们之间的值。
    在 Ruby 中,这些序列是使用 ".." 和 "..." 范围运算符来创建的。两点形式创建的范围包含起始值和结束值,三点形式创建的范围只包含起始值不包含结束值。


    Ruby defined? 运算符

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

    用法

    #!/usr/bin/ruby
    # -*- coding: UTF-8 -*-
    
    foo = 42
    puts defined? foo    
    puts defined? $_
    puts defined? bar
    

    结果如下:

    local-variable
    global-variable
    
    

    最后一条bar是没有定义的,所以返回 nil。

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

    你可以通过在方法名称前加上类或模块名称和 . 来调用类或模块中的方法。你可以使用类或模块名称和两个冒号 :: 来引用类或模块中的常量。
    :: 是一元运算符,允许在类或模块内定义常量、实例方法和类方法,可以从类或模块外的任何地方进行访问
    请记住:在 Ruby 中,类和方法也可以被当作常量。
    你只需要在表达式的常量名前加上 :: 前缀,即可返回适当的类或模块对象。
    如果 :: 前的表达式为类或模块名称,则返回该类或模块内对应的常量值;如果 :: 前未没有前缀表达式,则返回主Object类中对应的常量值。
    下面是两个实例:
    第一个例子:

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

    结果如下:

    1
    2
    

    第二个例子:

    #!/usr/bin/ruby
    
    CONST = ' out there'
    class Inside_one
      CONST = proc {' in there'}
      def where_is_my_CONST
        ::CONST + ' inside one'
      end
    end
    class Inside_two
      CONST = ' inside two'
      def where_is_my_CONST
        CONST
      end
    end
    puts Inside_one.new.where_is_my_CONST#全局的CONST+ ' inside one'
    puts Inside_two.new.where_is_my_CONST
    puts Object::CONST + Inside_two::CONST#全局的CONST+inside_two里面方法外的CONST
    puts Inside_two::CONST + CONST#inside_two里面方法外的CONST+全局的CONST
    puts Inside_one::CONST.call + Inside_two::CONST#inside_one要通过call来调用。
    

    结果如下:

     out there inside one
     inside two
     out there inside two
     inside two out there
     in there inside two
    

    总结

    其实从python跳过来,还是有点吃力的,

    参考:https://www.runoob.com/ruby/ruby-operator.html

    相关文章

      网友评论

          本文标题:Ruby 运算符

          本文链接:https://www.haomeiwen.com/subject/aiaibctx.html