首先先講一下包
包(package)是多個(gè)Go源碼的集合,是一種高級(jí)的代碼復(fù)用方案,Go語言為我們提供了很多內(nèi)置包,如fmt、os、io等。
我們還可以根據(jù)自己的需要?jiǎng)?chuàng)建自己的包。一個(gè)包可以簡(jiǎn)單理解為一個(gè)存放.go文件的文件夾。 該文件夾下面的所有g(shù)o文件都要在代碼的第一行添加如下代碼,聲明該文件歸屬的包。
注意事項(xiàng):
一個(gè)文件夾下面直接包含的文件只能歸屬一個(gè)package,同樣一個(gè)package的文件不能在多個(gè)文件夾下。
包名可以不和文件夾的名字一樣,包名不能包含 - 符號(hào)。
包名為main的包為應(yīng)用程序的入口包,這種包編譯后會(huì)得到一個(gè)可執(zhí)行文件,而編譯不包含main包的源代碼則不會(huì)得到可執(zhí)行文件。
如果想在一個(gè)包中引用另外一個(gè)包里的標(biāo)識(shí)符(如變量、常量、類型、函數(shù)等)時(shí),該標(biāo)識(shí)符必須是對(duì)外可見的(public)。在Go語言中只需要將標(biāo)識(shí)符的首字母大寫就可以讓標(biāo)識(shí)符對(duì)外可見了。
結(jié)構(gòu)體中的字段名和接口中的方法名如果首字母都是大寫,外部包可以訪問這些字段和方法。例如:
type Student struct {
Name string //可在包外訪問的方法
class string //僅限包內(nèi)訪問的字段
}
type Payer interface {
init() //僅限包內(nèi)訪問的方法
Pay() //可在包外訪問的方法
}
要在代碼中引用其他包的內(nèi)容,需要使用import關(guān)鍵字導(dǎo)入使用的包。具體語法如下:
注意事項(xiàng):
import導(dǎo)入語句通常放在文件開頭包聲明語句的下面。
導(dǎo)入的包名需要使用雙引號(hào)包裹起來。
包名是從$GOPATH/src/后開始計(jì)算的,使用/進(jìn)行路徑分隔。
Go語言中禁止循環(huán)導(dǎo)入包。
如果只希望導(dǎo)入包,而不使用包內(nèi)部的數(shù)據(jù)時(shí),可以使用匿名導(dǎo)入包。具體的格式如下:
**
init()函數(shù)介紹
在Go語言程序執(zhí)行時(shí)導(dǎo)入包語句會(huì)自動(dòng)觸發(fā)包內(nèi)部init()函數(shù)的調(diào)用。需要注意的是: init()函數(shù)沒有參數(shù)也沒有返回值。 init()函數(shù)在程序運(yùn)行時(shí)自動(dòng)被調(diào)用執(zhí)行,不能在代碼中主動(dòng)調(diào)用它。
**
由上面可以看出是一些包的一些語法和基本使用
首先一個(gè)項(xiàng)目只能有一個(gè)入口相信大家都知道
![](/d/20211017/5debdb1902ead2b0c8bfd269e2a07491.gif)
如果都按照我的這種寫法在IDE中run按鈕是一定可以運(yùn)行的,否則也有其他的運(yùn)行方法比如終端的 go run main.go
,如果main文件和其他go文件都在一個(gè)文件夾下,也可以使用 go run mian.go
加上 那個(gè)文件名比如 go run main.go test.go
等等
了解不夠深刻如果有其他更好的建議或者方法以及補(bǔ)充的話 歡迎評(píng)論
到此這篇關(guān)于解決使用IDE Run運(yùn)行出錯(cuò)package pack/test is not in GOROOT (/usr/local/go/src/pack/test)的文章就介紹到這了,更多相關(guān)IDE Run運(yùn)行出錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 顯示IntelliJ IDEA工具的Run Dashboard功能圖文詳解
- idea 右鍵項(xiàng)目沒有run 運(yùn)行選項(xiàng)
- IDEA開啟Run Dashboard的配置詳解
- IDEA 2020.1 搜索不到Chinese (Simplified) Language Pack EAP,無法安裝的問題