【Golang】夠浪的package

main和package

每個包下只能有一個main函數,且包含這個main函數的包名必須命名爲 package main 否則無法找到main函數,

包要滿足一下條件:

  • 一個目錄下的同級文件歸屬一個包。也就是說,在同一個包下面的所有文件的package名,都是一 樣的。
  • 在同一個包下面的文件package名都建議設爲是該目錄名,但也可以不是。也就是說,包名可以與其目錄不同名。
  • 包名爲main的包爲應用程序的入口包,其他包不能使用。 

 命名包的規則如下:

package 包名

 包內的屬性和方法命名規則:

大寫字母代表 public ,其他包可以使用此屬性或者方法

小寫字母代表 privet , 其他包不能使用

main包導入其他本地包:

如圖所示

文件結構爲:

demo

    |------src

              |------hello

                         |------sayHello

                                      |--------hello.go

                         |--------main.go 

//hello.go的內容
package sayHello

import "fmt"

func Hello()  {
	fmt.Println("hello")
}
//main.go的內容
package main

import "demo/hello/sayHello"

func main() {
    //此處調用hello.go的Hello方法,需要import sayHello包
	sayHello.Hello()
}

注意點:

  • 沒有使用go.mod的話就需要把項目設置在GOPATH的src文件下,因爲在導入包的時候是在GOPATH的src目錄下找的
  • import導入時,會從GO的安裝目錄(也就是GOROOT環境變量設置的目錄)和GOPATH環境變量設置的目錄中,
    檢索src/package來導入包。如果不存在,則導入失敗。(GOROOT,就是GO內置的包所在的位置。GOPATH,就是我們自己定義的包的位置。)
  • 通常我們在開發Go項目時,調試或者編譯構建時,需要設置GOPATH指向我們的項目目錄,目錄中的src目錄中的
    包就可以被導入了。

導入包的其他幾種方式: 

      1、合併導入

import {
    "package1"
    "package2"
}

      2、點操作

import {
    ."fmt"
}

func main(){
    //fmt.Println("沒有.的話就要帶上fmt.哦")
    Println("導入包有.的話就可以直接打印啦")
}

     3、起別名

import {
    p "package"
}

     這樣就可以用p.method代替package.method了,p是package的別稱

     4、 _ 下劃線導包

import {
    _"package"
}

     不直接使用包內的函數,而是調用了包內的 init() 函數進行初始化

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章