<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 5.4\. 命名 名稱在 Go 里和在其它語言里一樣重要。某種情況下它們甚至有語義效果:例如,一個名稱能否在包外可見取決于它的第一個字母是否大寫。所以值得花點時間探討下 Go 程序的命名約定: ### 5.4.1\. 包的命名 當包引入時,包名成為其內容的引導符。 `import "bytes"` 后, 導入者可以講 bytes.Buffer。更有用的是每個包的用戶都能使用相同的名稱指出它的內容,亦即包應有個好名稱:短,精,好記。習慣上包名是小寫的單字的名稱;應無必要用下劃線或大小混寫。簡錯不糾,因為你的包的每個用戶都要敲這個名字。還有不要無謂煩擾撞名。包名只是引入時的默認名;它不需在所有源碼中都唯一,如出現少見的撞名,導入者可以給出不同的名字局部使用。無論如何,撞名很少見,因為 import 用的文件名只決定使用那個包。 另一個習慣是包名是源目錄的基名;src/pkg/container/vector 里的包引入為 “container/vector” 但包名是 vector,不是 container_vector 也不是 containerVector。 導入者使用包名引導其內容 (import . 的記法主要特意用在測試或其它不尋常的場合),所以包的導出的名稱可據此避免結結巴巴。例如,bu?o 包的 buffered reader 叫 Reader,不叫 BufReader,因為用戶看到的是 bu?o.Reader 這個清楚簡短的名稱。再有,因為導入項總是給出其包名,bu?o.Reader 不會和 io.Reader 撞名。類似的,用來生成 ring.Ring 的函數 — 即 Go 的架構函數 — 通常會被稱為NewRing,但因為 Ring 是此包唯一的導出類型,并且既然包名叫ring,它就叫 New。此包的客戶看到的是 ring.New。使用包結構幫你來選個好名。 Another short example is once.Do; once.Do(setup) reads well and would not be improved by writing once.DoOrWaitUntilDone(setup). Long names don't automatically make things more readable. If the name represents something intricate or subtle, it's usually better to write a helpful doc comment than to attempt to put all the information into the name. ### 5.4.2\. 接口的命名 習慣上,單一成員的界面的名稱是其成員名加 -er:Reader, Writer,Formatter 等。 存在這樣的一些名稱,尊重它們和它們所指的函數會工作的更好。Read, Write, Close, Flush, String 等保有正統的簽名和意義。為了避免混淆, 除非有同樣的簽名和意義,不要給你的方法這些名字。同理,如果你的方法實現了和這些著名方法同樣的意圖,給它同樣的名稱和簽名;叫你的字符轉換器 String 而不是 ToString。 ### 5.4.3\. 大小寫混寫 最后,Go 習慣使用 MixedCaps 和 mixedCaps,而不是下劃線來寫多字的名稱。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看