加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Ruby inspect方法以及其与to_s的差异

发布时间:2021-11-22 10:36:08 所属栏目:PHP教程 来源:互联网
导读:Ruby inspect方法以及其与to_s的区别: [www.linuxidc.com @linuxidc ~]$ irb 1.9.3p194 :001 class Dog 1.9.3p194 :002? def say 1.9.3p194 :003? puts woof! 1.9.3p194 :004? end 1.9.3p194 :005? end = nil 1.9.3p194 :006 a = Dog.new = #Dog:0x000000016d
Ruby inspect方法以及其与to_s的区别:
 
[www.linuxidc.com @linuxidc ~]$ irb
1.9.3p194 :001 > class Dog
1.9.3p194 :002?> def say
1.9.3p194 :003?> puts "woof!"
1.9.3p194 :004?> end
1.9.3p194 :005?> end
=> nil
1.9.3p194 :006 > a = Dog.new
=> #<Dog:0x000000016dfff0>
1.9.3p194 :007 > a
=> #<Dog:0x000000016dfff0>
 
当直接查看对象a时,就会出现#<Dog:0x000000016dfff0> 这样难懂的信息,其实这是一个预设的行为,我们可以随意改变,只要为其加上inspect方法,就会返回以合理方式描述对象的字符串,包括对象以及所有实例变量的状态。
 
1.9.3p194 :001 > class Dog
1.9.3p194 :002?> def inspect
1.9.3p194 :003?> "inspect"
1.9.3p194 :004?> end
1.9.3p194 :005?> def to_s
1.9.3p194 :006?> "to_s"
1.9.3p194 :007?> end
1.9.3p194 :008?> end
=> nil
1.9.3p194 :009 > a = Dog.new
=> inspect
1.9.3p194 :010 > a
=> inspect
1.9.3p194 :011 > puts a
to_s
=> nil
1.9.3p194 :012 > print
print printf
1.9.3p194 :012 > print a
to_s => nil
1.9.3p194 :013 > p a
inspect
=> inspect
 
inspect和to_s的区别就是
 
 
puts obj ==> puts obj.to_s
p obj ==> puts obj.inspect
 
 

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读