重返Ruby之路 Day5

185 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Ruby

模运算与余运算:

使用#remainder方法可以计算并返回整数除法运算的余数,而使用#divmod方法可以计算除法的整数结果及其模值。

区别在于模运算在第二个操作数为正时返回一个正整数,当第二个操作数为负时返回一个负整数。 余数运算在第一个操作数为正时返回一个正整数,当第一个操作数为负时返回一个负整数。

处理正整数时没有区别,但处理负整数时会不尽相同:

2.7.1 :010 > 10.remainder(3)
 => 1
2.7.1 :011 > -10.remainder(3)
 => -1
2.7.1 :012 > 10.remainder(-3)
 => 1
2.7.1 :013 > 10.divmod(3)
 => [3, 1]
2.7.1 :014 > -10.divmod(3)
 => [-4, 2]
2.7.1 :015 > 10.divmod(-3)
 => [-4, -2]

变量

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" 的局部常量