详解Ruby当中的算数运算

 更新时间:2015年05月12日 09:39:14   投稿:goldensun  
这篇文章主要介绍了详解Ruby当中的算数运算,是Ruby学习当中的基础知识,需要的朋友可以参考下

 Ruby支持一系列丰富的运算符的一个现代化的语言。大多数运算符实际上是方法调用。例如,a + b的被解释为a,
+(b)变量引用的对象的方法被称为一个用b作为它的参数。

对于每个运算符 (+ - * / % ** & | ^ << >> && ||), 有相应的赋值运算符缩写形式 (+= -= 等)
Ruby算术运算符:

假设变量a=10,变量b=20:

201551292317953.jpg (586×414)

 Ruby比较操作符:

假设变量a=10,变量b=20:

201551292359303.png (586×898)

 Ruby赋值运算符:

假设变量a=10,变量b=20:

201551292426433.png (573×809)

 Ruby并行赋值:

Ruby还支持并行赋值的变量。这使得多个一行Ruby代码来初始化变量。例如:

a = 10
b = 20
c = 30

需要更迅速声明,使用并行赋值:

a, b, c = 10, 20, 30

并行赋值交换两个变量的值也是有用的:

a, b = b, c

Ruby位运算符:

位运算符位和位操作执行位。

假设当a =60和b=13;现在以二进制格式将如下:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

支持Ruby语言的位运算符

201551292459659.jpg (583×540)

 Ruby逻辑运算符:

支持Ruby语言的逻辑运算符

假设变量a=10,变量b=20:

201551292600791.jpg (592×612)

 Ruby三元运算符:

还有一个运算符称为三元运算符。这首先计算一个表达式为true或false值,然后执行一个计算结果来决定两个语句的哪一个。条件运算符的语法如下:

201551292637298.jpg (601×134)

 Ruby范围运算符:

Ruby中的序列范围是用来创建连续值 - 组成了开始值/结束值,并在两者之间的值的范围内。

在Ruby中,创建这些序列使用“..”和“...”范围运算符。这两个点的形式建立一个包容性的范围,而三个点的形式创建了一个范围,不包括指定的最大值。

201551292848887.jpg (610×190)

 Ruby defined? 操作符:

defined是一个特殊的操作符采取的形式的方法调用,以确定是否通过表达式定义。如果没有被定义的表达式,它返回一个描述字符串求解出的表达式或nil

有很多种用法 defined操作符:
用法 1

defined? variable # True if variable is initialized

例如 :

foo = 42
defined? foo  # => "local-variable"
defined? $_   # => "global-variable"
defined? bar  # => nil (undefined)

用法 2

defined? method_call # True if a method is defined

例如 :

defined? puts    # => "method"
defined? puts(bar)  # => nil (bar is not defined here)
defined? unpack   # => nil (not defined here)

用法 3

# True if a method exists that can be called with super user
defined? super

例如 :

defined? super   # => "super" (if it can be called)
defined? super   # => nil (if it cannot be)

用法 4

defined? yield  # True if a code block has been passed

例如 :

defined? yield  # => "yield" (if there is a block passed)
defined? yield  # => nil (if there is no block)

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

调用一个模块方法,通过模块的名称和句点它的名字前,引用一个常数使用该模块的名称和两个冒号。
::使得一元运算符,常数,实例方法和类方法在类或模块定义,从任何地方访问外的类或模块。
请记住:在Ruby中,类和方法可以被视为常数。只需要前缀::Const_name的表达式返回相应的类或模块对象。
如果没有前缀表达式时,主要对象类默认情况下使用。
这里有两个例子:

MR_COUNT = 0    # constant defined on main Object class
module Foo
 MR_COUNT = 0
 ::MR_COUNT = 1  # set global count to 1
 MR_COUNT = 2   # set local count to 2
end
puts MR_COUNT    # this is the global constant
puts Foo::MR_COUNT # this is the local "Foo" constant

Second Example:

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
puts Inside_two.new.where_is_my_CONST
puts Object::CONST + Inside_two::CONST
puts Inside_two::CONST + CONST
puts Inside_one::CONST
puts Inside_one::CONST.call + Inside_two::CONST

Ruby运算符优先级

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

201551293021971.jpg (589×741)

注: 方法列一个是运算符实际上是方法,因此可能会被改写。

相关文章

  • Ruby中的gem包管理的使用及gem源搭建教程

    Ruby中的gem包管理的使用及gem源搭建教程

    RubyGems是Ruby世界中的包管理工具,gem命令使用起来就如同Linux中的apt与yum一样,也可以构建自己的gem源,下面就带大家一起来学习Ruby中的gem包管理的使用及gem源搭建教程
    2016-05-05
  • 使用Ruby来处理JSON的简单教程

    使用Ruby来处理JSON的简单教程

    这篇文章主要介绍了使用Ruby来处理JSON的简单教程,用到了Ruby gem,需要的朋友可以参考下
    2015-04-04
  • Ruby常量查找路径问题深入研究

    Ruby常量查找路径问题深入研究

    这篇文章主要介绍了Ruby常量查找路径问题深入研究,本文给出了多个例子来探讨Ruby的常量查找路径,并给出了总结结论,需要的朋友可以参考下
    2015-03-03
  • CentOS7下搭建ruby on rails开发环境

    CentOS7下搭建ruby on rails开发环境

    听说rails是一个比较流行的快速开发框架,对于我这个web不熟悉的人来说,那是极好的!可以快速上手,又能真正了解服务器端的各种,所以rails搞起来。不过一个完整的开发环境搭建过程完成后,真的只能用各种坑来形容~
    2016-02-02
  • Windows下Ruby+Watir自动化测试的环境搭建及数据读取

    Windows下Ruby+Watir自动化测试的环境搭建及数据读取

    这篇文章主要介绍了Windows下Ruby+Watir自动化测试的环境搭建及数据读取,Watir是一个使用Ruby实现的开源Web自动化测试框架,需要的朋友可以参考下
    2016-03-03
  • Ruby面向对象编程中类与方法的基础学习

    Ruby面向对象编程中类与方法的基础学习

    方法可以理解为类中的函数,一定程度上可以受到类作用域的制约,其他地方和传统意义上的函数无太大区别,这里我们就一起来进行Ruby面向对象编程中类与方法的基础学习
    2016-05-05
  • 比较详细的ruby symbol 学习资料

    比较详细的ruby symbol 学习资料

    最近在学习ruby on rails,的确是一个优秀的数据库开发框架。但在过程中,发现在视图文件夹中的rhtml文件里有大量的类似于以下的语句
    2008-08-08
  • 实例解析Ruby设计模式编程中Strategy策略模式的使用

    实例解析Ruby设计模式编程中Strategy策略模式的使用

    这篇文章主要介绍了Ruby设计模式编程中Strategy策略模式的使用实例,Strategy模式在Ruby on Rails框架开发中也经常用到,需要的朋友可以参考下
    2016-03-03
  • Luhn算法学习及其Ruby版实现代码示例

    Luhn算法学习及其Ruby版实现代码示例

    Luhn算法主要北用来进行数字验证,尤其是卡号身份证号等,这里我们就来看一下Luhn算法学习及其Ruby版实现代码示例:
    2016-05-05
  • 21个你应该知道的Ruby编程技巧

    21个你应该知道的Ruby编程技巧

    这篇文章主要介绍了21个你应该知道的Ruby编程技巧,涵盖编码过程中的方方面面,需要的朋友可以参考下
    2014-06-06

最新评论