Ruby02
今天学习Ruby的时候,了解到了内省(Introspection)
内省(Introspection)
内省是OOP和环境的一个特性。内省是对象揭示自己作为一个运行时对象的详细信息的一种能力。
这些详细的信息包括对象的继承树上的位置,对象是否可以响应特定的方法等。
#! usr/bin/env ruby
class Student
def fun_01
p "hello teacher"
end
end
p.class #内省方法:判断自己的类:Student
Student.ancestors #内省方法:判断自己的继承类树
p.methods #内省方法:查看自己可以响应的方法列表
p.methods(false)
p.respond_to?(方法名) #内省方法:是否响应这个方法
可以联想到其他语言,OC中的方法:
+/-isKindofClass: //检查对象是否是那个类或者其派生类的类对象
+/-isMemberOfClass: //检查对象是否那个类的类对象
+/-respondToSelector: //检查对象是否可以响应这个方法
+/-conformsToProtocol: //检查对象是否符合协议