详解Ruby当中的算数运算
Ruby支持一系列丰富的运算符的一个现代化的语言。大多数运算符实际上是方法调用。例如,a + b的被解释为a,
+(b)变量引用的对象的方法被称为一个用b作为它的参数。
对于每个运算符 (+ - * / % ** & | ^ << && ||), 有相应的赋值运算符缩写形式 (+= -= 等)
Ruby算术运算符:
假设变量a=10,变量b=20:
Ruby比较操作符:
假设变量a=10,变量b=20:
Ruby赋值运算符:
假设变量a=10,变量b=20:
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语言的位运算符
Ruby逻辑运算符:
支持Ruby语言的逻辑运算符
假设变量a=10,变量b=20:
Ruby三元运算符:
还有一个运算符称为三元运算符。这首先计算一个表达式为true或false值,然后执行一个计算结果来决定两个语句的哪一个。条件运算符的语法如下:
Ruby范围运算符:
Ruby中的序列范围是用来创建连续值 - 组成了开始值/结束值,并在两者之间的值的范围内。
在Ruby中,创建这些序列使用“..”和“...”范围运算符。这两个点的形式建立一个包容性的范围,而三个点的形式创建了一个范围,不包括指定的最大值。
Ruby defined"htmlcode">
调用一个模块方法,通过模块的名称和句点它的名字前,引用一个常数使用该模块的名称和两个冒号。 Ruby运算符优先级 下表列出了所有运算符从最高优先级到最低。 注: 方法列一个是运算符实际上是方法,因此可能会被改写。
defined"htmlcode">
foo = 42
defined"local-variable"
defined"global-variable"
defined"htmlcode">
defined"htmlcode">
defined"method"
defined"htmlcode">
# True if a method exists that can be called with super user
defined"htmlcode">
defined"super" (if it can be called)
defined"htmlcode">
defined"htmlcode">
defined"yield" (if there is a block passed)
defined"." 双冒号 "::" 运算符:
::使得一元运算符,常数,实例方法和类方法在类或模块定义,从任何地方访问外的类或模块。
请记住:在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中的变量
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?