update tw

This commit is contained in:
chai2010
2015-12-18 10:53:03 +08:00
parent 510c741a6f
commit c66a96ee52
106 changed files with 864 additions and 864 deletions

View File

@@ -1,6 +1,6 @@
## 2.1. 命名
Go語言中的的函數名, 變量名, 常量名, 類型名, 語句段標簽名, 和 包名 等所有的命名, 都遵循一個命名規則: 一個名字必鬚以一個字母(Unicode字母)或下劃綫開頭, 後可以跟任意數量的字母,數字或下劃綫. 不大小寫字母是不的: `heapSort``Heapsort` 是兩個不的名字.
Go語言中的的函數名, 變量名, 常量名, 類型名, 語句段標簽名, 和 包名 等所有的命名, 都遵循一個命名規則: 一個名字必鬚以一個字母(Unicode字母)或下劃綫開頭, 後可以跟任意數量的字母,數字或下劃綫. 不大小寫字母是不的: `heapSort``Heapsort` 是兩個不的名字.
Go語言類似 `if``switch` 的關鍵字有25個; 關鍵字不能用於自定義名字, 隻能在特定語法中使用.
@@ -29,8 +29,8 @@ Functions: make len cap new append copy close delete
這些內部預先定義的名字不是關鍵字, 你可以在定義中重現使用它們. 在一些特殊的場景重新定義是有意義的, 但是也要註意避免引起混亂.
如果一個實體是在函數內部定義, 那它的就隻在函數內部有效. 如果是在函數外部定義, 那將在當前包的所有文件中都可以訪問. 名字的開頭字母的大小寫決定了名字在包外的可見性. 如果一個名字是大寫字母開頭的, 那它將是導齣的, 也就是可以被外部的包訪問, 例如 `fmt` 包的 `Printf` 函數就是導齣的, 可以在 `fmt` 包外部訪問. 包本身的名字一般總是用小寫字母.
如果一個實體是在函數內部定義, 那它的就隻在函數內部有效. 如果是在函數外部定義, 那將在當前包的所有文件中都可以訪問. 名字的開頭字母的大小寫決定了名字在包外的可見性. 如果一個名字是大寫字母開頭的, 那它將是導齣的, 也就是可以被外部的包訪問, 例如 `fmt` 包的 `Printf` 函數就是導齣的, 可以在 `fmt` 包外部訪問. 包本身的名字一般總是用小寫字母.
名字的長度沒有限製, 但是Go的風格是量使用短小的名字, 對於侷部變量尤其是這樣; 你會經常看到 `i` 之類的名字, 而是冗長的 `theLoopIndex`. 通常來說, 如果一個名字的作用域比較大, 生命週期較長, 那用長的名字將更有意義.
名字的長度沒有限製, 但是Go的風格是量使用短小的名字, 對於侷部變量尤其是這樣; 你會經常看到 `i` 之類的名字, 而是冗長的 `theLoopIndex`. 通常來說, 如果一個名字的作用域比較大, 生命週期較長, 那用長的名字將更有意義.
在習慣上, Go程序員推薦使用`駝峯式`命名, 當名字有幾個單詞的時優先使用大小寫分隔, 而不是優先用下劃綫分隔. 因此, 標準庫有 `QuoteRuneToASCII``parseRequestLine` 這樣的函數命名, 但是不會用 `quote_rune_to_ASCII``parse_request_line` 這樣的命名. 像 `ASCII``HTML` 這樣的縮略詞避免使用大小寫混, 它們可能被稱 `htmlEscape`, `HTMLEscape``escapeHTML`, 但不會是 `escapeHtml`.
在習慣上, Go程序員推薦使用`駝峯式`命名, 當名字有幾個單詞的時優先使用大小寫分隔, 而不是優先用下劃綫分隔. 因此, 標準庫有 `QuoteRuneToASCII``parseRequestLine` 這樣的函數命名, 但是不會用 `quote_rune_to_ASCII``parse_request_line` 這樣的命名. 像 `ASCII``HTML` 這樣的縮略詞避免使用大小寫混, 它們可能被稱 `htmlEscape`, `HTMLEscape``escapeHTML`, 但不會是 `escapeHtml`.