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: //检查对象是否符合协议
posted @ 2021-10-31 16:28  lvable  阅读(39)  评论(0编辑  收藏  举报