标签:Metaprogramming
Ruby元编程(四)
参考书籍《Ruby元编程(第二版)》 Ruby版本: 书上使用的是2.x,自己使用的3.1.2 类定义的本质 在ruby中类不过是增强的模块,因此对类的相关内容也适用于模块 当前类 不管处在ruby程序的那个位置,总存在一个当前对象:self。同样,也总是存在一个当前类(或模块)存在。 - 在程序的顶层,当前类是Obj…
Ruby元编程(三)
参考书籍《Ruby元编程(第二版)》 Ruby版本: 书上使用的是2.x,自己使用的3.1.2 动态调用方法 使用[Object send]可以进行动态调用方法。send方法的第一个参数是要调用的方法名字(可以是字符串或符号),剩下的参数和代码块会直接传递给调用的方法,这样可以在代码运行的最后一刻决定调用那个方法,这个…
Ruby元编程(二)
参考书籍《Ruby元编程(第二版)》 Ruby版本: 书上使用的是2.x,自己使用的3.1.2 关于self和私有方法调用之间的问题 Ruby2.7之前版本 在Ruby 2.7之前,可以使用self调用一个私有写入/赋值方法,但是使用self调用任何其他私有方法将抛出NoMethodError。 示例如下: 上面的示例…
Ruby元编程(一)
参考书籍《Ruby元编程(第二版)》 Ruby版本: 书上使用的是2.x,自己使用的3.1.2 打开类 Ruby中的class关键字只有在第一次使用时是作为类型声明语句使用,用于定义一个目前不存在的类。 对于已经存在的类,class关键字的作用更像是一个作用域操作符,把你带到类的上下文中,让你可以在里面定义方法。 这种…