瞎扯淡 为什么是 binding.pry 而不是 pry.binding?

046569 · 2013年11月07日 · 最后由 gaicitadie 回复于 2013年11月07日 · 2824 次阅读

也包括 binding.pry_remote,经常写反,设计的初衷是什么?

1 楼 已删除

因为 patch binding 对象会很方便:

 irb
2.0.0p247 :001 > x = 1
 => 1
2.0.0p247 :002 > eval("x", binding)
 => 1

这个就满足大部分 pry 的需求了... 主要也是获取 binding 内的各种值。连 eval 都赠送了..

#3 楼 @Saito 还有就是 eval("x", binding) 不如 binding.eval("x") OO, pry 同理

从实现上看,message receiver (点号左边或者 self) 不需要做类型检查,message param (方法右边) 却要做类型检查 -- 运行变慢,代码更多,更容易出类型不匹配的错误

#2 楼 @luikore #3 楼 @Saito 感谢解惑 #1 楼 @Juanito 明显不顺啊,你先让绑定,所有人都在那等着到底叫谁,不如先叫 Pry,只有它一个人在等待比较好。

#5 楼 @046569 是的,不好意思,請看 2-4 樓的專業回復。

#4 楼 @luikore 这是一个 this 是谁的问题..

最近 coffee 写多了...

initailize()
initailize this, arguments

所以就 eval 了。

这是病,得电...

涨知识了,感谢 2 楼分享

需要 登录 后方可回复, 如果你还没有账号请 注册新账号