2010-03-15 78 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功能不:)