diff --git a/ch1/ch1-01.md b/ch1/ch1-01.md index 2604022..5226128 100644 --- a/ch1/ch1-01.md +++ b/ch1/ch1-01.md @@ -1,6 +1,6 @@ ## 1.1. Hello, World -我們以現已成爲傳統的“hello world”案例來開始吧, 這個例子首次出現於1978年出版的《C語言聖經》。(譯註:[《The C Programming Language》](http://s3-us-west-2.amazonaws.com/belllabs-microsite-dritchie/cbook/index.html), 本書作者之一Brian W. Kernighan也是C語言聖經一書的作者)。C語言是直接影響Go語言設計的語言之一。 +我們以現已成爲傳統的“hello world”案例來開始吧, 這個例子首次出現於1978年出版的《C語言聖經》。(譯註:[《The C Programming Language》](http://s3-us-west-2.amazonaws.com/belllabs-microsite-dritchie/cbook/index.html), 本書作者之一Brian W. Kernighan也是C語言聖經一書的作者)。C語言是直接影響Go語言設計的語言之一。這個例子體現了Go語言一些核心理念。 ```go gopl.io/ch1/helloworld @@ -41,7 +41,7 @@ Hello, 世界 ``` (譯註:在Windows繫統下在命令行直接輸入helloworld.exe命令運行): -本書中, 所有的示例代碼上都有一行標記,利用這些標記, 可以從 `gopl.io` 網站上本書源碼倉庫里獲取代碼: +本書中, 所有的示例代碼上都有一行標記,利用這些標記, 可以從[gopl.io](http://gopl.io)網站上本書源碼倉庫里獲取代碼: ``` gopl.io/ch1/helloworld @@ -65,7 +65,7 @@ Go的標準庫提供了100多個包,以支持常見功能,如輸入、輸出 Go語言不需要在語句或者聲明的末尾添加分號,除非一行上有多條語句。實際上,編譯器會主動把特定符號後的換行符轉換爲分號, 因此換行符添加的位置會影響Go代碼的正確解析。(譯註:比如行末是,一個標識符、一個整數、浮點數、虛數、字符或字符串文字、關鍵字break、continue、fallthrough或return中的一個、運算符和分隔符++、--、)、]或}中的一個)。舉個例子, 函數的左括號`{`必須和`fucn`的函數聲明, 且位於該行末尾,不能獨占一行,而在表達式`x + y`中,可在`+`後換行,不能在`+`前換行(譯註:以+結尾的話不會被插入分號分隔符,但是以x結尾的話則會被分號分隔符,從而導致編譯錯誤)。 -Go語言在代碼格式上采取了很強硬的態度。`gofmt`工具把代碼格式化爲標準格式(譯註:這個格式化工具沒有任何可以調整代碼格式的參數,Go語言就是這麽任性),併且`go`工具中的`fmt`子命令會對指定包, 否則默認爲當前目録, 中所有.go源文件應用`gofmt`命令。本書中的所有代碼都被gofmt過。你也應該養成格式化自己的代碼的習慣。以法令方式規定標準的代碼格式可以避免無盡的無意義的瑣碎爭執(譯註:也導致了Go語言的TIOBE排名較低,因爲缺少撕逼的話題)。更重要的是,這可以避免由於代碼格式導致的邏輯上的歧義。 +Go語言在代碼格式上采取了很強硬的態度。`gofmt`工具把代碼格式化爲標準格式(譯註:這個格式化工具沒有任何可以調整代碼格式的參數,Go語言就是這麽任性),併且`go`工具中的`fmt`子命令會對指定包, 否則默認爲當前目録, 中所有.go源文件應用`gofmt`命令。本書中的所有代碼都被gofmt過。你也應該養成格式化自己的代碼的習慣。以法令方式規定標準的代碼格式可以避免無盡的無意義的瑣碎爭執(譯註:也導致了Go語言的TIOBE排名較低,因爲缺少撕逼的話題)。更重要的是,這樣可以做多種自動源碼轉換,如果放任Go語言代碼格式,這些轉換就不大可能了。 很多文本編輯器都可以配置爲保存文件時自動執行`gofmt`,這樣你的源代碼總會被恰當地格式化。還有個相關的工具,`goimports`,可以根據代碼需要, 自動地添加或刪除`import`聲明。這個工具併沒有包含在標準的分發包中,可以用下面的命令安裝: ```