Ruby 1.9 (2): 内核与对象

Jan 发表于 2007-12-28 16:05:23

BasicObject

1.9增加了一个新的顶级类,很纯洁

BasicObject.instance_methods # => [:==, :equal?, :"!", :"!=", "__send__]
Object.ancestors # => [Object, Kernel, BasicObject]

注意instance_methods返回的array中现在都是symbol对象,以前是string对象.

#instance_exec

为特定的instance执行block

BasicObject.instance_methods
# => ["__send__", "__id__", "==", "send", "send!", "respond_to?", "equal?", "object_id"]
Object.ancestors # => [Object, Kernel, BasicObject]

Kernel#require

通过require载入的文件现在以绝对路径的形式存放在$"变量中, require现在这样工作:

$" << File.expand_path(loaded_file)

Object#=~

匹配失败的时候返回nil而不是false

1 =~ 1 # => nil

Object#tap

把对象传给block, 返回这个对象,在链式调用的时候非常有用.

"F".tap{|x|x.upcase!}[0] # => "F"
"F".upcase![0] # error, 此时upcase!返回nil,你将会对nil调用[]方法

Kernel#define_singleton_method

a=""
a.define_singleton_method(:foo){|x|x+1}
a.foo(2) # => 3

Kernel#singleton_methods, Kernel#methods

返回一个由symbol组成数组而不是一个由字符串组成的数组

经我试验失败的features:

* send不能再调用private方法
* 没有新加入send!方法
关键词(Tag): ruby 1.9 changes

曾经的这一天...


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定