ruby调试/练习时的小技巧
必备工具
irb
查祖先
1.9.3-p545 :023 > String.ancestors
=> [String, Comparable, Object, Kernel, BasicObject]
String的前面有四个上级
过滤方法
Ruby的方法非常多,以至于不得不用grep了。
1.9.3-p545 :049 > [].methods.grep /^me/
=> [:member?, :methods, :method]
查方法来源
1.9.3-p545 :018 > {}.method :select
=> #<Method: Hash#select>
1.9.3-p545 :019 > {}.method :reduce
=> #<Method: Hash(Enumerable)#reduce>
method方法可以实现。
文档
如果找明确的方法,可以用ri,方便快捷。
ri String.sub
对象模型
各种对象语言的原理是类似的,但是内部实现模型是不一样的。Ruby用起来简单,内部很复杂的。
当你感觉Ruby好用的时候,其实应该感谢Matz的工作。
Kernel模块是核心,很多重要的方法都在里面。
推荐看《Ruby元编程》,书中有详细介绍。
ruby调试/练习时的小技巧的更多相关文章
- java.text.MessageFormat格式化字符串时的小技巧
java.text.MessageFormat格式化字符串时的小技巧 public static void main(String[] args) throws InterruptedExceptio ...
- Windows下程序打包发布时的小技巧
一.背景 Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作 ...
- Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)
Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里 ...
- DB2删除数据时的小技巧
大家对如何删除数据都不陌生,我们习惯性的这么写: 其实这么写性能并不好,尤其是删除大量数据的时候,要想获得更好的性能,可以采用如下方式: 那如果要把一个表的所有数据都删除了,该怎么办?有人可能会说,这 ...
- win21api、win32gui、win32con三个模块操作系统窗口时一些小技巧
下面这段脚本是操作一个浏览器上弹窗,打开文件窗口,由于脚本 执行速度快,当时未添加第2行的延时时,脚本顺利的执行成功,但弹的窗却没有进行操作,建议后续如果脚本执行到打开弹窗时,延时个几秒再去操作所弹窗 ...
- 使用jquery时一些小技巧的总结
使用 each 遍历 var nodes = Ztree.getCheckedNodes(true); //获取所有勾选的节点 $.each(nodes,function(i,value){ aler ...
- 练oj时的小技巧(大多都在oj记录里,这是被忘记的部分)
1. getline()函数,头文件为#include<string> getline(istream &in, string &s):从输入流读入一行到string s ...
- 6 个珍藏已久 IDEA 小技巧,这一波全部分享给你!
每周趣图 产品经理设计体验/用户实际体验 本周就不写技术分析文章了,分享几个珍藏已久的 IDEA 的「骚技巧」,助你快速完成代码. 还等什么?赶紧上车吧...... 先赞后看,养成习惯.微信搜索「程序 ...
- gdb调试运行时的程序小技巧
使用gdb调试运行时的程序小技巧 标签: 未分类 gdb pstack | 发表时间:2012-10-15 04:32 | 作者:士豪 分享到: 出处:http://rdc.taobao.com/bl ...
随机推荐
- onselectstart="return false"
以前在做图片滚动时,在双击左右箭头,快速切换图片滚动时,会选择附近区域的文字,感觉不是很好,今天在查资料时,讲到了这个问题, 试了一下,不错,解决了问题. IE及Chrome下的方法一样,对相应的元素 ...
- Hibernate 二级缓存的配置及使用_EhCache
大多数的应用程序中都会添加缓存模块,以减少数据库访问次数,同时增加响应速度.下面介绍一下hibernate的二级缓存.默认情况下hibernate的二级缓存是不开启的,我们需要手动配置并启用. 注: ...
- iOS 循环引用
1.循环引用一般是指:A持有B,B同时持有A,从而导致死循环无法释放对象. 2.一般循环引用出现在block和delegate中,而一般解决方法就是将self变成weakSelf(强引用变成弱引用), ...
- 开源战棋 SLG 游戏框架设计思考(一)简介和游戏引擎
战棋 SLG 游戏 SLG(Simulation Game)游戏是模拟游戏的简称.战棋类的SLG有两种:一种是 War Game 中的兵棋推演分支,常见的游戏有战争艺术3(TOAW3 — The Op ...
- Xamarin Android 绑定jar库同时将so库打包进去
1.在创建的Bindings Library项目中,新建Assets目录: 2.Assets目录下再分别创建armeabi,armeabi-v7a,x86三个目录: 3.将so文件分布copy到三个目 ...
- sql笔记-group by 统计功能
--查询月销售量小于20的人员销售情况 SELECT C.Category, SUM(c.[Count]) AS CategorySum FROM test.dbo.Category c --WHER ...
- 使用 Swift 在 iOS 10 中集成 Siri —— SiriKit 教程
下载 Xcode 8,配置 iOS 10 和 Swift 3 (可选)通过命令行编译 除 非你想使用命令行编译,使用 Swift 3.0 的工具链并不需要对项目做任何改变.如果你想的话,打开 Xcod ...
- GIT-查看本地html帮助文档
GIT安装后可以直接在命令行中通过指令调取本地html帮助文档如下所示: 格式: git help remote--git help 指令名称 git help remote 显示结果 获取branc ...
- 批量修改一张表格的多个sheet名
例如这样的函数: Sub aab() For x = 4 To 5 Sheets(x).Name = "10" & Format(x - 3, "00" ...
- C++学习笔记 四种新式类型转换
static_cast ,dynamic_cast,const_cast,reinterpret_cast static_cast 定义:通俗的说就是静态显式转换,用于基本的数据类型转换,及指针之间的 ...