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) 同时用来生成文档。