ruby metaprogramming 0
来源:互联网 发布:克利夫兰州立大学 知乎 编辑:程序博客网 时间:2024/06/03 19:09
Resource: Metaprogramming in Ruby
Metaprogramming is giving your programs the ability to manipulate themselves at run time.
Names of classes in ruby are just constants.
Classes are objects of class Class. Class is object Class itself.
All objects can have methods which are instance methods of its class. So Classes can have methods which are methods of instance methods of Class.
We can insert methods to a object. So we can insert methods to object of Class.
But how class Class know what kind of methods you want in your own class? The answer is: When you define class method in your class or you insert methods to objects an anonymous class is created and inserted to the inheritance hierarchy as a container to hold the methods.
Everyone of the following patterns will makes ruby to create a anonymous for you.
# 1class Rubyist def self.who "Geek" endend# 2class Rubyist class << self def who "Geek" end endend# 3class Rubyistenddef Rubyist.who "Geek"end#4class RubyistendRubyist.instance_eval do def who "Geek" endendputs Rubyist.who # => Geek# 5class << Rubyist def who "Geek" endend
BasicObject >> Object >> Module >> Class >> Fixnum << Integer << Numeric << Object <<BasicObject
- ruby metaprogramming 0
- ruby metaprogramming examples
- ruby metaprogramming 01
- ruby metaprogramming 03
- Ruby元编程技术(Ruby Metaprogramming techniques)
- Ruby元编程技术(Ruby Metaprogramming techniques)
- Metaprogramming in Ruby: It’s All About the Self
- 《C++ Template Metaprogramming》习题3-0
- Template Metaprogramming
- Metaprogramming(1)
- template metaprogramming
- MetaProgramming Chapter4
- MetaProgramming Chapter5
- MetaProgramming Chapter6
- the boost c++ metaprogramming
- MetaProgramming 求π源代码
- 关于元编程(Metaprogramming)
- Functional Programming & Template Metaprogramming
- 多特宣布罗伊斯休战三月缺席新赛季开局阶段
- 设备与驱动的匹配
- Mina使用总结
- poj 3101 Astronomy(分数的最小公倍数)
- Add multiple models in one view in MVC4
- ruby metaprogramming 0
- 巨人史玉柱:令人惊叹的优秀产品经理
- 各种排序
- 运算符重载的方式 双目运算符重载为类的成员函数
- Twitter创始人多西:从少年极客到壮年企业家
- swift 笔记 (九) —— 类和结构体
- 服务器新监控(win + .net)
- Get date without time in C#
- Linux的进程/线程间通信方式总结