以下内容纯粹为本人以前学习 Ruby 时的笔记整理。限于个人理解能力,可以肯定一定有 大量的错误,与其说分享,不如说是写出来让大家检查。如果有什么不对,或不准确的 地方,也希望前辈们一定多多指正,不吝赐教。
我希望这里是一个具有良好氛围的中文社区 (我梦寐以求的那个 Ruby 中文社区) 所以我不 希望出现针对这个帖子的不和谐言语或对针对本人的任何不良言语.
总共分为五大部分:每一部分都有上百条,可能会有重复,有些就是直接抄书。都是我 个人的理解以及对某些文章片段的延伸,大家就将就着看了。
markdown 格式折腾了一下午,托万能 Emacs 的福,使用 markdown-mode 搞定了。现在才觉 出 edit-server 的好来,这是另一个 Emacs 插件,可以让我在 Emacs 下使用特定的模式直 接编辑 Chrome 浏览器打开的表单,不过也许用惯了 org-mode 的缘故,这个 markdown 依旧 觉得很不习惯。
顺便提个建议:我总觉得应该开个 lisp 版块。我想凡是接触过 lisp(或 elisp) 的人,应该 都会觉得这两门语言惊人的相似,混入,布尔真假等等,如果说 Ruby 字符串 (尤其是 1.9) 及其强大,完全继承自 Perl 的话,我倒是觉得骨子里的东西 (类,模块) 甚至面向对 象的方式 (Ruby 一切都是对象,lisp 一切都是列表) 都和 lisp 惊人的相似,即使表面上 看起来这是完全不同的两种语言,甚至是不同类型语言。
Ruby 新人可以看看我的基础理论部分,这也是当初我学习 Ruby 心路历程,虽然有些问题很初级,但是我就是这样一步一步走过来的。
类相关部分全是都是关于 Ruby 的基石类的概念。这部分的概念极多.超级复杂,也很抽象,如果你真正理解了 Ruby 的对象模型,会有及其惊艳的感觉。这部分的东西,这部分的大部分内容都是双眼瞪着天花板冥思苦想,也偶尔查阅源码而写出的。深有感触,有什么不对的地方,欢迎高手指正。
小提示部分也很杂乱,这是感觉自己脱离了基础部分之后,写的一些小技巧。
常犯错误部分不用说了,直到现在自己仍旧屡犯不止的错误。
ruby 惯例是自己整理的一些`非必须'的小技巧,但是作为 Ruby 惯例,应该支持。
在使用方法调用`花括号包含的'代码块时,记住! 总是给该方法添加括号.
浮点数,Ruby小数点前后必须有数字出现.例如,不能写.1,而必须显式的写0.1相应的, 使用浮点数的科学表示法, 小数点前后必须有数字. 1.0e3, 如果写成1.e3, 将尝试调用1的e3方法.
为了高效的使用硬件, 大多数浮点数表现形式都是二进制的, 可以精确的表达1/2, 1/4, 1/1024的分数.但是, 1/10, 1/100, 1/100却无法做到精确. 这意味着: 0.4 - 0.3 == 0.1, 结果是false.
不要忘记raise其实是一个方法, raise 参数1(异常类型), 参数2(异常消息) (中间的逗号!!!)
rescue其实也是一个方法, rescue 异常类型1, 异常类型2, ... (不要忘记中间的逗号)
如果你真的想通过代码块返回一个值, 使用next, 而不是return.只要满足以上约定,多数情况下,都可以使用proc替代Proc.new或lambda
一旦添加了yield语句, 或在方法内调用了Proc对象的call方法, 就必须有代码块,否则报错!!
一个类的instance_variables返回的是`类'的实例变量. (而非类实例的实例变量)
经常把,(逗号)写成.(dot)要注意改正这个坏习惯了.出现代码问题,很不好查的.