研究ruby的一些小技巧
关于类
class Exam < ActionView::Base
end
Exam.superclass超类,顶级超类为BaseObjectExam.ancestors类包含的模块(包含类本身)Exam.included_modules类包含的模块(不包含类本身)Exam.class_variables类的类变量(默认包含继承的类变量,参数false为不包含继承的类变量)Exam.constants类的常数(默认包含继承的类变量,参数false为不包含继承的常数)Exam.instance_methods类的实例方法(默认包含继承的类变量,参数false为不包含继承的实例方法)
关于对象
a = Exam.new
a.class对象的类a.object_id对象的“对象ID”,同名方法a.__id__a.instance_variables对象的实例变量a.instance_variable_get :@xx查看具体实例变量a.methods对象包含的方法,通过传递参数可以查看一定范围内的方法,其他几个方法:private_methods protected_methods public_methods singleton_methods
关于方法
def a.a_method
end
a.method(:a_method)得到一个method对象;a.method(:a_method).source_location查看方法定义的文件及所在行;