zoukankan      html  css  js  c++  java
  • 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: //检查对象是否符合协议
    
  • 相关阅读:
    反射:框架设计的灵魂
    Junit测试
    XML笔记
    map 的用法
    opencv总结1
    光源
    镜面反射
    openGL纹理对象
    GPU入门
    动态规划1
  • 原文地址:https://www.cnblogs.com/R0SS/p/15489934.html
Copyright © 2011-2022 走看看