Ruby 反射和内省
反射(Reflection),何为反射,反射就是把自己的内部成员(属性 方法),映射成为响应的类对象。
一个Person类对象tom,他们可以利用tom拿到当前的类,可以拿到tom的内部成员像是年龄 出生日期 家庭住址这些对象的类
内省(Inspection),何为内省,看英文名字inspection,意思为检查,反省的意思,所以顾名思义,就是可以检测自己属于什么类,自己有没有某个方法,自己的父类是谁。
◆:一个ruby对象o 的内省
1:得到自己的object id: o.object_id
2:检测自己的类型 inspect type: [].class == Array
3:检测自己的类:inspect class: o.class == Foo o.instance_of?(Foo)
4:检测类的继承:inspect class hierarchy: o.class.superclass o.class.included_modules
5:检测自己是否拥有某个方法: o.respond_to?("reverse")
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。