以下内容纯粹为本人以前学习 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 惯例,应该支持。
按照惯例,永远不要重写equal?方法!!
大量的证据证明, 全局变量将使得代码变得很难维护. 所以除非万不得已, 尽量别用.
而作为@@类变量, 则倾向于尽量少的使用.
作为Ruby优雅性的体现,建议使用then. 而且简单的if语句,建议使用修饰符形式.
unless和until一般使用修饰句形式, 习惯上和自然语义比较明确的真假判断语句一起使用.
例如:Ruby 中大量存在的常见问号方法。defined? nil? empty? 等.
示例:s = o.to_s unless o.nil? puts a.pop until a.empty?无论是`双引号字符串'或`单引号字符串', 建议 总是使用两个反斜杠`\\'来表示`反斜杠自身'
总是给inject指定一个初始值!!,例如inject(0) {}
在ruby的方法当中,多个参数间使用逗号分隔. 也可以用空格分隔或者没有空格(只要能区分开, 但不推荐).
在Ruby当中,按照惯例,大多数常量名都是全部大写的.并且使用下划线来分隔单词.例如LIKE_THIS.
类和模块名也是常量,按照惯例,它们采用驼峰式(MixedCase).例如:LikeThis.
操作符两侧(例如=)添加两个空格是一个好的习惯! 这样可以避免产生和方法名的歧义.也好看啊!
永远不要在方法名和其后的左括号之间留空白!!!!