Ruby语言基础学习三:Ruby变量、运算

#_*_ 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值