#_*_ coding:utf-8 _*_
# 联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,
# 如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。
a=10
b=12
c=10<=>12
puts c
a1,b1,c1=10,20,30
a,b=b,a;#这样设计很巧妙,可以直接进行两个东西的值进行对调
puts a,b
#位运算
a2 = 0b0011
b2 = 0b0000
a2&b2#交集
a2|b2#并集
a2^b2#异或
~a2 #非
#defined? 是一个特殊的运算符,以方法调用的形式来判断传递的表达式是否已定义。
#它返回表达式的描述字符串,如果表达式未定义则返回 nil。
#用法一:defined? variable # 如果 variable 已经初始化,则为 True
foo = 42
defined? foo # => "local-variable"
defined? $_ # => "global-variable"
defined? bar # => nil(未定义)
#用法二:defined? method_call # 如果方法已经定义,则为 True
defined? puts # => "method"
defined? puts(bar) # => nil(在这里 bar 未定义)
defined? unpack # => nil(在这里未定义)
# 用法三:如果存在可被 super 用户调用的方法,则为 True
#defined? super
defined? super # => "super"(如果可被调用)
defined? super # => nil(如果不可被调用)
#用法四:defined? yield # 如果已传递代码块,则为 True
defined? yield # => "yield"(如果已传递块)
defined? yield # => nil(如果未传递块)
# Ruby 点运算符 "." 和双冒号运算符 "::"
# 请记住:在 Ruby 中,类和方法也可以被当作常量。
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.call #这里要加上call才能正确显示,因为有proc
puts Inside_one::CONST.call + Inside_two::CONST
Ruby语言基础学习三:Ruby变量、运算
最新推荐文章于 2022-05-21 11:35:18 发布