<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 6.3\. 新建一個包 根據一般約定,導入路徑為x/y的包的源代碼應放在$GOROOT/src/pkg/x/y目錄中。 ### 6.3.1\. Makefile 如果能有專門針對Go的工具能檢測源代碼文件,決定編譯順序就好了,但現在,我們還只能用GNU的make。所以,新建包首先要新建的文件就是Makefile。如果是在Go源代碼樹中,其基本格式可參照src/pkg/container/vector/Makefile: ``` include ../../../Make.inc TARG=container/vector GOFILES= intvector.go stringvector.go vector.go include ../../../Make.pkg ``` 在Go的源代碼樹之外(個人包),標準的格式則是: ``` include $(GOROOT)/src/Make.inc TARG=mypackage GOFILES= my1.go my2.go include $(GOROOT)/src/Make.pkg ``` 第一行和最后一行分別導入了標準定義和規則。Go源代碼樹中所維護的包使用相對路徑(代替$(GOROOT)/src),所以即使是$(GOROOT) 中含有空格也可以正常使用。這無疑簡化了程序員嘗試Go的難度。 如果沒有設置$GOROOT環境變量,在運行gomake時就必須使用第二種makefile。即使系統中的GNU Make的名字是gmake而不是make,Gomake也能正常的調用它。 TARG 是這個包的目標安裝路徑,就是客戶用來導入這個包的字符串。在Go的源代碼樹種,這個字符串必須跟Makefile中的目錄保持一致,不需 要$GOROOT/src/pkg/前綴。在Go的源代碼樹之外,則可以使用任何跟標準Go包名稱不沖突的TARG。一個常見的規則是用一個獨有的名稱把 自己的包組合在一起,例如:myname/tree、 myname/filter等。注意,即使包的源代碼是放在Go源代碼樹外部,為了便于編譯器找到你的包,運行make install之后最好也把編譯后的包放到標準位置,即$GOROOT/pkg。 GOFILES是創建包所需要編譯的源代碼文件清單。用反斜杠符號\就能將這份清單分成多行,方便排序。 如果在Go的源代碼樹中新建包目錄,只需要將其添加到$GOROOT/src/pkg/Makefile的清單中,就能將其包含在標準構建中。然后運行: ``` cd $GOROOT/src/pkg ./deps.bash ``` 這是更新依賴文件Make.deps。(每次運行all.bash或make.bash時都會自動執行此操作。) 如果是修改一個已有的包,就不需要編輯$GOROOT/src/pkg/Makefile,不過運行deps.bash還是必須的。 ### 6.3.2\. Go源文件 對于每個源代碼文件,在Makefile中的命令首先是包的名稱,該名稱也是導入包的默認名稱。(同一個包中所有文件必須使用同一個名稱。)Go的規則是, 包的名稱是導入路徑的最后一個元素,例如以“crypto/rot13”為導入路徑的包的名稱應該是rot13。現在,Go工具還要求鏈接到同一個二進制 文件的所有包的名稱都應該是唯一的,但這個限制很快就會被移除。 Go會一次性編譯包中所有的源代碼文件,所以源代碼中可以試用其它文件中的常量、變量、類型和函數,而無需特別的安排或聲明。 編寫簡潔易懂的Go代碼超出了本文檔的范圍。Effective Go對此有介紹。
                  <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>

                              哎呀哎呀视频在线观看