ruby类名之间<,<=方法

有时候看源码的时候看到类名之间存在<.<=操作,顿时一头雾水,类名之间也可以比较吗?查了下api,豁然开朗

Class的父类是Module,Module.methods.grep(/</)

会得到匹配的结果集:[:<=>,:<,:<=]

e.g

mod < other → true, false, or nil

Returns true if mod is a subclass of other. Returns nil if there’s no relationship between the two. (Think of the relationship in terms of the class definition: “class A<B” implies “A<B”).

mod <= other → true, false, or nil

Returns true if mod is a subclass of other or is the same as other. Returns nil if there’s no relationship between the two. (Think of the relationship in terms of the class definition: “class A<B” implies “A<B”).

时间: 2024-10-05 19:59:30

ruby类名之间<,<=方法的相关文章

Java学习-024-获取当前类名或方法名二三文

今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法名时,源码中涉及类名或者方法名的地方必须同步变更,若修改的地方比较多,难免可能发生有遗漏的地方,那么后续通过日志查看分析原因时,就会找不到相应的地方,导致无法分析,查找原因. 为何要获取类名? 调试源码 记录日志 生成报告 统计分析,对调用比例占比大的方法,增强单元测试 构建系统调用关系链,对主要关

委托应用①——窗口之间方法/控件调用

转载请注明地址:http://www.cnblogs.com/havedream/p/4602974.html 最近重新拿起以前的书看,发现关于委托和事件一直没有很好的理解,或者说理解了也不知道到底这个东西有什么用,今天恰好碰到了一个窗口之间方法调用的问题(至于控件的调用其实是一样的,方式一样),问题描述如下: Form1中有一个刷新方法Refreash(),Form1用dialog方式打开Form2,我需要在更改完Form2后,也就是关闭Form2的时候刷新Form1,也就是调用Form1的R

Java中获取文件名、类名、方法名、行号的方法

??在C语言中,可以通过宏FILE.LINE来获取文件名和行号,在Java语言中,则可以通过StackTraceElement类来获取文件名.类名.方法名.行号,具体代码如下: public static int getLineNumber( ){ StackTraceElement[] stackTrace = new Throwable().getStackTrace(); return stackTrace[1].getLineNumber( ); } public static Stri

ruby中的方法查找

ruby中的方法调用都是 对象.方法 的形式,那么对象如何找到这个方法呢? 首先必须了解祖先链的概念,祖先链就是从一个类开始,到它的父类,再到父类的父类...一直到最终的起点(ruby中是BasicObject类).这期间经历过的路径就是祖先链. 1混含模块和继承的方法查找 对于一个实例对象,先找它属于的类中是否有对应的实例方法,然后看这个类中是否有模块,如果有,查找模块中是否有对应的方法,如果没有,则查找父类.先看父类的实例方法,再看父类中是否有模块,再看父类的父类..一直到最后,BasicO

ruby 变量和方法

def say_goodnight(name) result ="Good night ." +name return result end def say_goodmorning(name) result ="Good morning .#{name}" return result end def say_goodafternoon(name) result ="Good afternoon .#{name}" end puts say_goo

java 继承之间方法的时候(计算出经理与员工之间公司差别)

自己检讨下:刚开始看这个的时候,我觉得挺简单的,但是让我自己写的时候我确实不会写,最大的缺点就是好高骛远,偷懒,基础不会就想着上天. 希望别的朋友别要有这样的想法,再简单的例子,如果你不亲自敲下,在揣摩下,你敢说日后让你写这样的代码,你能写出来吗,我不是天才,但我坚信勤奋可以造就天才. 首先:分析下员工与经理之间的相同点,就是员工与经理都有姓名,工资和日期(其实我感觉这个日期不必要有)这个三个属性,经理比员工多的就是经理又项目奖金 然后可以把相同的信息抽出来,实例一个Employee类 ,这个类

【Ruby on Rails 学习五】Ruby语言的方法

1.方法的调用 2.自定义方法 3.带默认值的自定义方法 4.带返回值的自定义方法 方法或者说是函数,实际上是包含了一段代码,去执行某一个特定的过程. def add(a=3,b=2) return a+b end irb(main):002:0> require '/Study/Ruby/intro_rails/maizi/381-4026/08function.rb' => true irb(main):003:0> add => 5 irb(main):004:0> a

输出类名,方法名以及行数等log信息

public static void print(String text){    boolean debug = true;    if (debug) {        Context context = BaseApp.getContext();        StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[3];        // 获取类名.即包名+类名        String

ruby类和方法

Ruby 提供了四种类型的变量 局部变量:小写字母或_开头 实例变量:实例变量可跨越任何特定实例或对象的方法,意味着,从对象到对象的实例变量改变.实例变量前面加at符号@,紧接着变量名 类变量:类变量是可在各种不同的对象 一个类变量属于类 是类的一个特点 他们前面的符号@@跟着的类变量名 全局变量:类变量不能跨类 如果想要一个单一的变量可以跨类 需要定义一个全局变量 全局变量的前面总是用美元符号$ =end =begin Ruby 中使用new方法创建对象  对象是类的实例 =end class