设为首页 加入收藏

TOP

ruby 元编程
2017-10-09 14:25:51 】 浏览:7241
Tags:ruby 编程

一 对象模型

kernel Module

Kernel.private_instance_methods.grep(/^pr/)

 

private method

1 如果一个方法接收者不是你自己,一定要指定一个接收者

2 私有方法 只能指定一个隐含接收者(可调超类的私有方法)

类本身是Class类的对象。类的名字是个常量

Class<Module,模块和类的名字扮演目录角色,按树形结构组织

include Module时 M被插入到祖先链中,在该类的正上方

二 方法

obj.send(:method,arg)   #动态派发 ojb.method(arg)

Module#define_method   #动态方法 代替def

string#grep(){}

def method_missing(method,*args)

puts “you called:#{method}(#{args.join(‘, ‘)}”

end

三 blocks

Kernel#local_variables() 跟踪绑定的名字

ruby作用域不像java/c#中嵌套 内部可以看到外面

类定义,模块定义,方法调用时 时关闭前一个作用域

instance_eva l

instance_exec 可休参数

打包代码

proc lambda

&proc 代表一个代码块

proc中return 表示从定义的作用域中返回

lambda ruturn 表示中lambda中返回


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇墙国内新建Rails应用的要点(windo.. 下一篇Ruby FFI 入门教程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }