Permalink
Browse files

review translations

  • Loading branch information...
1 parent 2e0204a commit 2a9ece0533a3abb65922b6e56ad619e47318399d @ihower ihower committed Jul 30, 2010
@@ -1,33 +1,31 @@
-Java是成熟,通過考驗,而且執行速度快(與反對者所指恰恰相反)的程式語言,它也滿囉嗦的。
+Java 是個成熟,通過考驗,而且執行速度快(與反對者所指恰恰相反)的程式語言,它也滿囉嗦的。
由Java到Ruby,程式的篇幅可望縮短不少,也可以預期花較少的時間就能拼出系統雛形。
h3. 相似點
Ruby與Java一樣的地方,...
-
* 記憶體透過垃圾回收(Garbage Collection)機制管理。
-* 物件為強型別。
-* 有public, private, 與protected方法
-* 也有將原始碼轉成文件的工具(Ruby的叫做RDoc),文件以rdoc產生的樣子與javadoc類似
+* 物件為強型別(Strongly typed)
+* 有 public, private, 與 protected 方法
+* 也有將原始碼轉成文件的工具(Ruby的叫做RDoc),文件以 rdoc 產生的樣子與 javadoc 類似
h3. 相異點
Ruby與Java不同的地方,...
-
* 不用編譯程式,直接跑它就行了。
* 有不同的圖形介面(GUI)工具組,例如可以試試 "WxRuby":http://wxruby.rubyforge.org/wiki/wiki.pl , "FXRuby":http://www.fxruby.org/ , "Ruby-GNOME2":http://ruby-gnome2.sourceforge.jp/ ,或已經包在Ruby裡的Tk。
* 以 @end@ 這個關鍵字作為定義類別(class)等的結尾,不必用大括號包著程式區塊。
* 用 @require@ 而不是 @import@ 。
-* 物件的所有成員變數皆為private,外界透過方法(method)來存取。
+* 物件的所有成員變數皆為 private,外界需透過方法(method)來存取。
* 呼叫方法時,可以省略括號。
-* 所有東西都是物件,包括像2與3.14159這些數字
+* 所有東西都是物件,包括像 2 與 3.14159 這些數字
* 沒有靜態的型別檢查。
* 變數名稱只是標記,不與型別關聯。
* 不用宣告型別。只要依需要指定給一個新的變數,事情就"發生"了 (所以不用 @int[] a = {1,2,3};@ ,僅需 @a = [1,2,3]@ )。
-* 直接呼叫方法,不用轉型。在執行程式前,單元測試應該就能告訴你是否會有異常(exception)。
+* 直接呼叫方法,不用轉型。在執行程式前,你的單元測試應該能告訴你是否會有例外(exception)。
* 寫 @foo = Foo.new( "hi")@ ,而非 @Foo foo = new Foo( "hi" );@ 。
* 建構式的名稱固定為"initialize",而非與類別同名。
-* 運用"mixin"而非介面(interface)。
+* 運用 "mixin" 而非介面(interface)。
* 傾向使用YAML(YAML Ain't Markup Language)多於XML。
* 是 @nil@ ,不是 @null@ 。
* Ruby處理 @==@ 及 @equals()@ 的方式迥異。要看是否等值,使用 @==@ (Java用 @equals()@ )。要知道是否為同一物件,則使用 @equal?()@ (Java用 @==@ )。
@@ -1,16 +1,13 @@
-PHP被廣泛的應用在網頁程式中,但如果你想試試Ruby on Rails或者你想要一個更加訂製化的
-慣用語言,Ruby值得一看。
+PHP 被廣泛的應用在網頁程式中,如果你想試試看 Ruby on Rails,或是你想要一個更加講究的多功能程式語言,Ruby 值得一看。
h3. 相似點
Ruby與PHP一樣的地方...
* Ruby是個動態型別的程式語言,你不用擔心宣告變數的問題。
* Ruby有類別,也有 @public@, @private@, 與 @protected@ 方法,就像PHP 5一樣。
-* Some variables start with $, like in PHP (but not all)
-* 有些變數以$號開頭(但不是所有變數)
+* 也有變數以$號開頭 (在Ruby中表示這是全域變數)
* 也有 @eval@ 。
-* 有字串「插值」。不過不是用 "$foo is a $bar" ,而是"#{foo} is a #{bar}"
- -- 跟PHP一樣,用單引號包住的字串不適用。
+* 有字串「內嵌」。不過不是用 "$foo is a $bar" ,而是"#{foo} is a #{bar}" -- 跟PHP一樣,用單引號包住的字串就不會作用。
* 也有Heredocs。
* Ruby也有例外處理,就像PHP 5一樣。
* Ruby也有非常廣泛的標準函式庫。
@@ -25,9 +22,9 @@ Ruby與PHP不同的地方...
* 字串、數值、陣列、雜湊...等等。他們全都是物件。所以該用-1.abs而不是abs(-1)。
* 呼叫方法時,可以省略括號。
* 標準函式庫和擴充套件都被包裝成模組和類別了。
-* Ruby的物件天生繼承了反射能力,你不需要像在PHP 5中一樣使用 @Reflection@ 類別。
-* Variables are references.
+* 反射(reflection)是 Ruby 物件與生俱來的能力,你不需要像在PHP 5中一樣使用 @Reflection@ 類別。
+* 變數都是參照(references)。
* 沒有抽象類別和介面。
-* 雜湊和陣列是不通用的
-* 只有 @false@ and @nil@ 是 false: @0@, @array()@ and @""@ 在條件判斷時都為真
-* 幾乎所有東西都是一個呼叫的方法,甚至 @raise@ (PHP的 @throw@).
+* 雜湊和陣列不可互換使用
+* 只有 @false@ and @nil@ 是 false: @0@, @array()@ and @""@ 在條件判斷時皆為真
+* 幾乎所有東西都是方法呼叫,甚至是 @raise@ (PHP的 @throw@).
@@ -1,36 +1,36 @@
-Python是另一種很棒的多功能用途程式語言。從Python轉換到Ruby,你會發現你需要比在學Python的時候多記一些語法
+Python 是另一種很棒的多功能用途程式語言。從 Python 轉換到 Ruby,你會發現需要比學 Python 時多記一些語法
h3. 相似點
Ruby與Python類似的地方...
* 同樣有互動的提示操作環境 (叫做 @irb@).
-* 你同樣可以使用指令直接讀取文件 (Python使用 @pydoc@ 指令,而Ruby使用 @ri@ 指令).
+* 你同樣可以使用指令來讀取文件 (Python使用 @pydoc@ 指令,而Ruby使用 @ri@ 指令).
* 每行程式碼同樣不需要特別的結尾符號 (除了一般的換行)。
-* 字串可以像Python的三引號字串一樣的跨越多行
+* 字串可以像 Python 的三引號字串一樣的跨越多行
* 中括號用來表示串列,大括號用來表示字典結構 (在Ruby稱為"hashes")。
* 陣列操作起來差不多 (陣列相加會產生一個更長的陣列, 但像 @a3 = [ a1, a2 ]@ 這樣的操作會回傳一個二維陣列).
-* 物件是強形態而且也都是動態形態(dynamically typed)。
+* 物件是強型別而且也都是動態型別(dynamically typed)。
* 所有東西都是物件, 變數只是指向某個物件的參考指標。
* 有些關鍵字雖然看起來不太一樣,但在例外處理方面的操作是差不多的。
-* 同樣也有嵌入式的文件工具 (在Ruby的是 is called rdoc).
+* 同樣也有嵌入式的文件工具 (在 Ruby 中叫做 rdoc)
h3. 相異點
Ruby與Python不同的地方...
* 字串是可變動的。
-* 你可以建立常數 (你不想要改變值的變數).
+* 你可以建立常數 (不想要再改變值的變數)。
* 有些大小寫的使用慣例 (例如類別名稱是以大寫字母開頭,一般變數則是使用小寫字母開頭)。
* 只有一種串列容器(陣列), 而且它是可變動的。
* Ruby的雙引號字串允許使用跳脫字元(escape sequences) (例如 \t) 以及特別的"運算取代(expression substitution)"語法 (可以讓你直接在字串裡直接插入Ruby運算後的結果,而不用像 @"add " + "strings " + "together"@ 的字串組合)。單引號字串則跟Python的 @r"raw strings"@是一樣的。
* 沒有什麼"新式"或"舊式"的類別寫法,Ruby的類別就只有一種寫法。
-* 你不用直接存取物件的屬性。在Ruby裡,這些都是method calls (You never directly access attributes. With Ruby, it’s all method calls.)
-* 在呼叫方法時的小括號通常是可以省略的
+* 你不能直接存取物件的屬性。在Ruby裡指能透過方法呼叫
+* 方法呼叫時的小括號通常是可以省略的
* 有 @public@, @private@, 以及 @protected@ 三種方式來設定存取層級,不像Python裡是用變數名稱前後加底線的方式表示。
-* "混入(mixing)"用來替代多重繼承
+* "混入(mixing)"功能用來替代多重繼承
* 你可以新增或修改內建的類別。兩種程式語言都可以讓你在任何時機做這樣的修改, 但是Python會阻止你修改內建的類別 — Ruby則沒有這個限制。
* 使用 @true@ 以及 @false@ 而不是 @True@ 跟 @False@ (Python裡的@None@ 在Ruby則是 @nil@).
* 在測試布林值的真假時,只有 @false@ 跟 @nil@ 會得到假的值,其它所有的都會得到真值。(包括 @0@, @0.0@, @""@, 以及 @[]@).
* Ruby使用 @elsif@ 而不是 @elif@.
* Ruby使用 @require@ 而不是 @import@,但使用上跟Python是一樣的。
* 用來產生文件的註解通常寫在內容的_上面_ (而不像docstrings是寫在下面)。
-* Ruby有許多的捷徑可以讓你使用,雖然你需要花更多時間去記憶,你還是可以很快的學會。這些捷徑會讓Ruby變得更有趣而且更有生產力。
+* Ruby有許多的捷徑可以使用,雖然有比較多要記,但你可以很快學會。這些捷徑會讓Ruby變得更有趣而且更有生產力。

0 comments on commit 2a9ece0

Please sign in to comment.