逼我,应用上 appstore 如果遇拒都要写英文啊,。我猛的回了几句中文,没想到给通过了。 现在 iphone,ruby 文档大多英文,看得我很累,努力学习中。
妹啊,我今天刚在总结这个,你就提问了。
instance_exec 与 instance_eval
两者都是取出 singleton_class 来执行 block,所以用其定义的方法全为 singletion_method instance_exec 可以传送参数,而 eval 不可以
class_eval 和 class_exec 也是执行 block,但是是放入当前 class/module 环境中执行,所以用其定义的方法为实例方法。 module_eval==class_eval
昨天和 zw96 讨论了一下,还补充一下。
instance 和 class_eval 的 recvier 都还是 self,但值得注意的是 instance_exec 的执行环境在 singleton_class 之下,而 class_eval 则在 self 之下。
所以涉及到消息接收时,两者一样,如
O.instance_exec {
define_method(:hello) {p 'instance exec method'}
puts self.object_id
}
O.class_exec {
define_method(:hello1) {p 'class_exec exec method'}
puts self.object_id
}
但涉及到执行环境时,则处理不一样,因为 instance_exec 在 singleton_class 环境下,所以生成的方法为类方法,而 class_exec 则为实例方法。
O.instance_exec {
def fun;end
}
O.class_exec {
def fun;end
}
你们玩吧,我要回老家去趟。
真强大,比 everything 还牛。
这个以前写 vs 项目时用过,话说在国内用起真的很痛苦,很慢的。
=可以理解为指针,或引用 clone 和 dup 都是浅拷,你的这个例子里写 clone 和 dup 都一样。因为浅拷,所以这个:z 只拷指针,不拷内容,一改变全变。
我看了一下源码,clone 和 dup 主要不同是,clone 可以拷到 engienclass,而 dup 不行。如:
s = "123456"
def s.fun;p 'haha';end
s.clone.fun #=>成功
s.dup.fun #=>undefined method `fun'
还有就是楼上的 FREEZE 状态。
跟数据结构有毛关系,你把那个 3 层循环拆成 2 个两层肯定是可行的,orders,filter_list 两个先比,找出符合条件的再和 trades 算帐。
我喜欢做小燕飞和眼保健操,效果都不错。刚做小燕飞肩痛了很久,后来关节再也不痛了。 目前上下班保持极限速度快走 30 多分钟,哎,感觉又回到了 18 岁。
不错的点子啊。利用 node.js+websocket 应该比较好实现。你快写吧,不写我要写了。
不能,楼主强,怎么才能做到这么慢呢。
benchmark
user system total real eval: 3.580000 0.000000 3.580000 ( 3.585330) const_get: 1.830000 0.000000 1.830000 ( 1.824264)
这样可行吗?
def present?(name)
name.split('::').inject(Object) {
|o, x| o = o.const_get(x) if x.capitalize==x && o.const_defined?(x)
}
end
个去,难怪我的 ios 头像都显不出来。
brew 好用吗,apt 爽得多。
还有 ida 和 od 可以用呀。