本文已参与「新人创作礼」活动,一起开启掘金创作之路。
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" 的局部常量