从Python到Ruby,翻译

Python是一门非常优秀的语言,从Python迁移到Ruby,你将发现一些语法上的不同。

相似点

和Python一样,在Ruby中,...

  • 有一个交互提示 (叫做 irb).
  • 你可以在命令行中读取文档 (通过ri 命令来替代 pydoc).
  • 没有特殊的结束一行的符号 (新行除外).
  • 文字可以用多行,就像Python中的三个引号.
  • List用[],Dict用{} (Dict在Ruby中叫“hashes”).
  • Arrays的工作方式相同(2个Array相加成为一个更加长的Array,但是想这样a3 = [ a1, a2 ] 合并,将产生一个包含数组的数组).
  • Objects是有固定类型和动态转换的.
  • 一切都是object,变量名只是一个指向Object的指针.
  • 虽然关键字不同, 但是exceptions的工作方式不变.
  • 你拥有嵌入文档的工具 (在Ruby中叫做rdoc).

不同点

与Python不同, 在Ruby中,...

  • Strings是可以改变的。
  • 你可以使用常量(常量的值是不同改变的)。
  • 这里有些强制规定的书写要求 (例如:class的名字以大写字母开头, 变量名已小写字母开头)。
  • 这里只有一种容器(Array), 并且是可以改变的。
  • 引号中的String限制不同。
  • 这里没有新风格的Class,Class只有一种风格。
  • 你无法直接访问属性,在Ruby中,都是通过方法调用实现的。
  • 在方法调用中使用(),是一种可选的策略。
  • 这里用private等等限制访问的关键字,来替代Python中的名字隐藏。
  • “mixin’s”用来替代多继承。
  • 你可以在任何时候修改已有的Class,并添加新的方法。
  • 用true和false来替代True和False (用nil来替代None)。
  • 在判断真值的时候,只有false和nil会被认为是假.其他所有的都认为是真(包括0, 0.0, "",和[])。
  • 用elsif替代elif.
  • 用require替代import. 但是用法是相同的。
  • 用usual-style来注释文档(替代docstrings) 同时用来生成文档。

原文地址:

http://www.ruby-lang.org/zh_CN/documentation/ruby-from-other-languages/to-ruby-from-python/