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: //检查对象是否符合协议
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步