2010-03-15 76 views
0

几天前我问了a question关于在等效的Ruby代码中代表public static finalprivate static final字段。它让我想到了Java中的其他语法元素可能不会直接转化为Ruby。 泛型注释想到。如果您尝试将某些Java代码移植到Ruby,那么其他任何不能很好地转换的东西?什么Java语法元素不会直接转换为等效的Ruby语法?

+0

你可以定义“没有转化以及”学习Ruby?在Ruby中,一些语法元素(例如泛型)根本没有意义。 – 2010-03-15 19:40:24

回答

0

我对这一个不积极,但我认为双大括号初始化不会。

例如

HashSet<String> codes = new HashSet<String>() {{ 
    add("XZ13s"); 
    add("AB21/X"); 
    add("YYLEX"); 
    add("AR2D"); 
}}; 
+0

在Java中这不被认为是好的做法。 – helpermethod 2010-03-15 20:18:29

+0

没人说,好的java练习。只是那些翻译不好的东西。我主要在测试代码中使用它。 – zellio 2010-03-15 20:24:11

+0

你可以在ruby中做code = [“XZ123s”,“AB21/X”,“YYLEX”,“AR2D”]。 – 2010-03-15 20:25:22

0

在Ruby中编程本身与Java有很大不同(函数式编程让人头脑发热)。所以它不仅是学习语法差异,主要是学习不同的代码方式。如果你像在Java中一样编程Ruby,它将(可能)导致非常糟糕的代码(即使你是一个专业的Java程序员)。

0

充分尊重Ruby应该被视为与Java不同的语言。人们不应该试图找到Java和Ruby之间的一对一映射。我曾经为一家大型数据库公司工作过,当时Java是“酷”语言,他曾在2000年代迁移了许多plsql开发人员编写基于Java的应用程序。结果是直到日期他们维护代码,其中类有像m_person_id字段变量,像p_person_id这样的参数和像l_person_id这样的局部变量。

问题是这个“映射”,而前缀p_(用于参数),l_(用于局部变量)或m_(场变量)在plsql中很好地运行,很少或没有IDE支持,它们在Java中没有意义使用Eclipse等IDE可以突出不同颜色的东西。

的例子可能是坏的,但试图从红宝石从Java移动是好的,但通过比较其相应的Java功能不:)