ruby 比较符号总结

1.  equal?  ruby中比较两对象方法有很多,可以用equal?比较两对象是否相等。

    test1 = "abce"  # test1.object_id =>  22615872

    test2 = "abce" #  test2.object_id =>  2261988

    test1.equal?(test2) => false

     test = test3 = "abce"  # test.object_id =>  22955376   ;     test3.object_id => 22955376

    test.equal?(test3)  => true 

    test.object_id == test3.object_id  #等同于 test.equal?(test3)

   equal?是对象的比较,不是值的比较。


 2. == 和equal? 是不一样的,它是比较对象内容是否相等。

    test1 = "abce"  # test1.object_id =>  22615872

    test2 = "abce" #  test2.object_id =>  2261988

    test1.equal?(test2) => false

   test1 == test2  => true


3. eql? 也是内容比较,但比 == 更精确(包括类型比较)

    test1 = "123"

    test2 = "123"

    test1.eql?(test2)  => true

    1.eql?(1.0) => false


4. ===

   常情况下这中方式与==是一样的,但是在某些特定情况下,===有特殊的含义:

  在Range中===用于判断等号右边的对象是否包含于等号左边的Range;

  正则表达式中用于判断一个字符串是否匹配模式,

  Class定义===来判断一个对象是否为类的实例,

  Symbol定义===来判断等号两边的符号对象是否相同。

 (1..10) === 5 # true: 5属于range 1..10
  /\d+/ === "123"  # true: 字符串匹配这个模式
  String === "s"   # true: "s" 是一个字符串类的实例
  :s === "s"       # false

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值