Ruby on Rails 之旅(五)—— Ruby与Java的区别

相似点

Ruby与Java一样的地方,...

  • 内存透过垃圾回收(Garbage Collection)机制管理。
  • 物件为强型别(Strongly typed)。
  • 有 public, private, 与 protected 方法。
  • 也有将原始码转成文件的工具(Ruby的叫做RDoc),文件以 rdoc 产生的样子与 javadoc 类似。

相异点

Ruby与Java不同的地方,...

  • 不用编译程序,直接跑它就行了。
  • 有不同的图形接口(GUI)工具组,例如可以试试 WxRubyFXRubyRuby-GNOME2 ,或已经包在Ruby里的Tk。
  • 以 end 这个关键词作为定义类别(class)等的结尾,不必用大括号包着程序区块。
  • 用 require 而不是 import 。
  • 对象的所有成员变量皆为 private,外界需透过方法(method)来存取。
  • 呼叫方法时,可以省略括号。
  • 所有东西都是对象,包括像 2 与 3.14159 这些数字。
  • 没有静态的型别检查。
  • 变量名称只是标记,不与型别关联。
  • 不用宣告型别。只要依需要指定给一个新的变量,事情就”发生”了 (所以不用 int[] a = {1,2,3}; ,仅需 a = [1,2,3] )。
  • 直接呼叫方法,不用转型。在执行程序前,你的单元测试应该能告诉你是否会有例外(exception)。
  • 写 foo = Foo.new( "hi") ,而非 Foo foo = new Foo( "hi" ); 。
  • 建构式的名称固定为”initialize”,而非与类别同名。
  • 运用 “mixin” 而非接口(interface)。
  • 倾向使用YAML多于XML。
  • 是 nil ,不是 null 。

Ruby处理 == 及 equals() 的方式迥异。要看是否等值,使用 == (Java用equals() )。要知道是否为同一对象,则使用 equal?() (Java用 == )。

这个是我直接拷贝过来的,学习到现在里面说的很多异同点我还没有感受,以后再回过头来看看这些对不对。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang