1. 程式人生 > 程式設計 >解決使用IDE Run執行出錯package pack/test is not in GOROOT (/usr/local/go/src/pack/test)

解決使用IDE Run執行出錯package pack/test is not in GOROOT (/usr/local/go/src/pack/test)

首先先講一下包
包(package)是多個Go原始碼的集合,是一種高階的程式碼複用方案,Go語言為我們提供了很多內建包,如fmt、os、io等。
我們還可以根據自己的需要建立自己的包。一個包可以簡單理解為一個存放.go檔案的資料夾。 該資料夾下面的所有go檔案都要在程式碼的第一行新增如下程式碼,宣告該檔案歸屬的包。

package 包名

注意事項:

一個資料夾下面直接包含的檔案只能歸屬一個package,同樣一個package的檔案不能在多個資料夾下。
包名可以不和資料夾的名字一樣,包名不能包含 - 符號。
包名為main的包為應用程式的入口包,這種包編譯後會得到一個可執行檔案,而編譯不包含main包的原始碼則不會得到可執行檔案。

如果想在一個包中引用另外一個包裡的識別符號(如變數、常量、型別、函式等)時,該識別符號必須是對外可見的(public)。在Go語言中只需要將識別符號的首字母大寫就可以讓識別符號對外可見了。
結構體中的欄位名和介面中的方法名如果首字母都是大寫,外部包可以訪問這些欄位和方法。例如:

type Student struct {
	Name string //可在包外訪問的方法
	class string //僅限包內訪問的欄位
}

type Payer interface {
	init() //僅限包內訪問的方法
	Pay() //可在包外訪問的方法
}

要在程式碼中引用其他包的內容,需要使用import關鍵字匯入使用的包。具體語法如下:

import "包的路徑"

注意事項:

import匯入語句通常放在檔案開頭包宣告語句的下面。
匯入的包名需要使用雙引號包裹起來。
包名是從$GOPATH/src/後開始計算的,使用/進行路徑分隔。
Go語言中禁止迴圈匯入包。

如果只希望匯入包,而不使用包內部的資料時,可以使用匿名匯入包。具體的格式如下:

import _ "包的路徑"

**

init()函式介紹

在Go語言程式執行時匯入包語句會自動觸發包內部init()函式的呼叫。需要注意的是: init()函式沒有引數也沒有返回值。 init()函式在程式執行時自動被呼叫執行,不能在程式碼中主動呼叫它。
**
由上面可以看出是一些包的一些語法和基本使用

首先一個專案只能有一個入口相信大家都知道

在這裡插入圖片描述

如果都按照我的這種寫法在IDE中run按鈕是一定可以執行的,否則也有其他的執行方法比如終端的 go run main.go ,如果main檔案和其他go檔案都在一個資料夾下,也可以使用 go run mian.go 加上 那個檔名比如 go run main.go test.go等等
瞭解不夠深刻如果有其他更好的建議或者方法以及補充的話 歡迎評論

到此這篇關於解決使用IDE Run執行出錯package pack/test is not in GOROOT (/usr/local/go/src/pack/test)的文章就介紹到這了,更多相關IDE Run執行出錯內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!