【Ruby】【基础语法】【运算符】



#【比较运算符】
=begin
<=> 联合比较运算符,相等返回0;第一个数大返回1;第二个数大返回-1
== 值相等
.eql? 类型相同且值相等
.equal? 是否具有相同的对象ID(内存地址是否相同)
=== 判断是否具有相同的类,或父类 判断两个实例对象是否具有血缘关系。另一种说法 判断case 语句的 when 子句内的 相等
=end

puts 1 == 1.0 #true

puts 1 === 1.0 #true
puts 1 === "abc" #false
puts (1...10) === 5 #true
puts (1...10) === 3 #true
puts (1..3) === 3 #true
puts (1...3) === 3 #false

puts 1.eql?(1) #true
puts 1.eql?(1.0) #false

puts 1.equal?(1) #true
puts 1.equal?(1.0) #false

a = 1
b = a
A = 'ABC'
B = A
AA = "A"
BB = AA + ""
print "a's ID : ",a.object_id,"\n"
print "b's ID : ",b.object_id,"\n"
print "A's ID : ",A.object_id,"\n"
print "B's ID : ",B.object_id,"\n"
print "AA's ID : ",AA.object_id,"\n"
print "BB's ID : ",BB.object_id,"\n"
print 'AA == BB : ',AA == BB,"\n"
print 'AA.eql?(BB) : ',AA.eql?(BB),"\n"
print 'AA.equal?(BB) : ',AA.equal?(BB),"\n"
print 'a.equal?(1) : ', a.equal?(1),"\n"
print 'b.equal?(1) : ',b.equal?(1),"\n"
print 'a.equal?(b) : ',a.equal?(b),"\n"
print '1.equal?(a) : ',1.equal?(a),"\n"
print '1.equal?(b) : ',1.equal?(b),"\n"
print 'A.equal?(B) : ',A.equal?(B),"\n"
=begin
a's ID : 3
b's ID : 3
A's ID : 70215304749280
B's ID : 70215304749280
AA's ID : 70215304749260
BB's ID : 70215304749180
AA == BB : true
AA.eql?(BB) : true
AA.equal?(BB) : false
a.equal?(1) : true
b.equal?(1) : true
a.equal?(b) : true
1.equal?(a) : true
1.equal?(b) : true
A.equal?(B) : true
=end

#【Ruby defined运算符】 以方法调用的形式判断传递的表达式是否已定义。返回表达式的描述字符串,如果表达式未定义则返回nil.
foo = 42
puts defined? foo #local-variable
puts defined? $_ #global-variable
puts defined? bar #打印了一个空行

puts defined? puts #method
puts defined? puts(var)#打印了一个空行
puts defined? unpack #打印了一个空行

#【Ruby 中的.运算符 和 :: 运算符】通过在方法名称前加上类或模块名称和 . 来调用类或模块中的方法。你可以使用类或模块名称和两个冒号 :: 来引用类或模块中的常量
#例子
# 定义在主Object类上的常量
MR_COUNT = 0
module Foo
MR_COUNT = 0
#设置全局计数为1
::MR_COUNT = 1
#设置局部计数为2
MR_COUNT = 2
end

puts MR_COUNT #1
puts Foo::MR_COUNT #2

#例子
CONST = ' out there '
class Inside_one

end




猜你喜欢

转载自www.cnblogs.com/suren2017/p/9261504.html