最近在浏览Ruby的一些资源文档,逛到了rubylearning.com。发现这里提供的Ruby Summary还不错,对准备学习Ruby,希望先了解Ruby的特性的朋友有所帮助。并且没有发现国内有译版,于是决定用边翻译边学习的方法再过一遍Ruby基础,所以就有了这个的译版。

 

Ruby Summary一共有8个页面,这是第一个,我会在这几天抽时间尽快逐一完成翻译。有些内容为了更通俗易懂而夹杂了一些我的理解,如果你发现哪里有翻译不妥或与原文有出入的地方,请联系我或留言。希望我不会误人子弟。

  1. 这些内容是基于Windows平台上1.9版本的Ruby的,不过也同样适用于Mac与Linux。
  2. Ruby是一种解释性语言。
  3. 在Ruby中,总有超过一种解决问题的办法。
  4. 代码布局很大程度决定于你;缩进并不重要,但如果你想把代码分享给你社区里的朋友,那可以使用两个字符的缩进。
  5. 惯例上,Ruby的源文件使用.rb作为文件后缀。但在Windows里,Ruby的源文件有时用.rbw作为扩展名像myscript.rbw。
  6. Ruby的程序是自上向下执行的。
  7. 几个特点:格式自由、区分大小写,两种备注方式,变量在使用前无需声明,有大约41个关键字。
  8. 可能你觉得0、空字符串、null或其他什么的应该等于false。但是在Ruby里,这些值都是true;事实上,除了false和nil,其他所有的都是true。
  9. 这里有一些文档供你参考。
  10. puts(里的s指的是string,puts的真实意思是put string)不论后边跟的是什么,都会简单的输出到屏幕上,但是输出完了它自动将光标定位到下一行。
  11. 在方法调用里,括号经常是可选的,下面这几个调用都是有效的:
    foobar
    foobar()
    foobar(a, b, c)
    foobar a, b, c
  12. Ruby里的没有小数点的数字叫integer(整型),有小数点的经常被叫做floating-point numbers(浮点数字),再简单点就叫float(注意你必须在小数点前留一个数字,.14 在Ruby里是不好使的)。
  13. 记录:Fixnum和Bignum类代表不同长度的integer,它俩的都定义自Integer(因此它俩也都是Numeric)。与其它编程语言不同,Ruby没有烦人的限制,它能处理极大的数字。Ruby用不同的类来限制:Fixnum(默认)表示小点的数,其它的被形象的命名为Bignum,它代表Ruby需要内部调整的大一点的数。Ruby会替你调整Bignum和Fixnum,那么你就能放心去做加减乘除什么的了。运算结果可能非常依赖于你的系统架构,但这些都会被Ruby全权处理好,所以这不用你操心。
  14. 几个常用的Ruby操作符:+加法运算;-减法运算;*乘法运算;/除法运算;
  15. 其他语言里的自增、自减运算符(++和–)在Ruby里是不好使的,前后都不行;
  16. 任何在括号里的表达式都会被优先运算(专业点的说就是优先级更高)。
  17. Ruby里有模运算符%。
  18. 当你用integer做运算时,得到的结果也是integer的。
  19. 两个单引号或两个双引号之间的字符序列就是字符串了。
  20. Ruby里,字符串是可变的。在需要时不用耗太多时间和内存便可扩展。
  21. 可以用+运算符来连接两个字符串。
  22. <<运算符是用来追加字符串的。
  23. 转移字符使用\字符,比如:\”,\\,\n。
  24. ‘’(单引号)和””都是空字符串。
  25. 如果你得到了一个这样的编译错误信息:#<TypeError: cannot convert Fixnum into String>意思就是你不能把数字添加到字符串里,或着说你不能用字符串乘以字符串。
  26. 常量使用大写字母,像:PI.length。
  27. 一个局部变量被使用的同时,解释器就会为其赋值。好的习惯是给变量初始化个nil。如果变量在没有赋值时就拿来使用,就会产生一个运行时错误。
  28. 在赋值运算符(=)两边用空格间隔:
    foo = 1
    而不是
    foo=1
  29. 每行代码进行一次赋初值
    level = 0
    size = 0
    要优于:
    level = size = 0
  30. x, y = y, x将会交换x和y的值。并行赋值就是有多个左值,或多个右值,或左右都多。多个左值或右值之间用逗号间隔。
  31. 局部变量必须用小写字母或下划线字符(_)作为起始,也必须且只能由英文字母,数字和下划线组成,比如说:india, _usa, some_var
  32. .to_s,.to_f,.to_s的作用分别是把对象转换为integer,float和string。

 

转载自:http://bevis.me/ruby_summary_cn_1