在Golang中,要調(diào)用項(xiàng)目下的go文件,需要先將所需調(diào)用的函數(shù)或變量定義為可導(dǎo)出(首字母大寫)的,然后使用import關(guān)鍵字導(dǎo)入該文件所在的包。通過使用導(dǎo)入的包名加上函數(shù)名或變量名,就可以在其他go文件中調(diào)用該函數(shù)或變量了。例如,假設(shè)項(xiàng)目下存在mypackage/myfile.go文件,該文件中包含一個(gè)名為MyFunction的函數(shù),那么可以使用import "mypackage"導(dǎo)入該包,然后使用mypackage.MyFunction在其他go文件中調(diào)用該函數(shù)。
創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。
一般有兩種情況: 第一:如果兩個(gè)代碼都在同一個(gè)包中的話, 是不用使用import語句來調(diào)用的。 可以直接使用另一個(gè)主類,通過新建對(duì)象的方式使用類的方法等等。 第二:如果兩個(gè)代碼不在同一個(gè)包中
在 Go 語言中,如果一個(gè)接口在一個(gè)包里,其他包要實(shí)現(xiàn)該接口,需要遵循下列步驟:
1. 定義接口:
假設(shè)接口定義在 `foo` 包中:
go
package foo
type MyInterface interface {
MyMethod() string
}
2. 實(shí)現(xiàn)接口:
定義一個(gè)新的類型 `Bar`,并為其實(shí)現(xiàn) `foo.MyInterface` 接口:
go
package bar
import "your-package/foo"
type Bar struct {
// ...
}
func (b Bar) MyMethod() string {
// implement method
return "bar"
}
在這里,需要導(dǎo)入 `foo` 包,并定義一個(gè) `Bar` 類型,為其實(shí)現(xiàn) `foo.MyInterface` 接口,這樣就完成了在不同包中實(shí)現(xiàn)接口的目標(biāo)。
如果在其他包中使用 `Bar`,需要先導(dǎo)入 `bar` 包,然后聲明 `Bar` 實(shí)例,并將其轉(zhuǎn)換為 `foo.MyInterface`,然后就可以調(diào)用 `MyMethod` 方法了:
go
import "your-package/bar"
func main() {
var myInterface foo.MyInterface = new(bar.Bar)
myInterface.MyMethod()
}
在這里,我們定義了一個(gè) `myInterface` 實(shí)例,將其類型聲明為 `foo.MyInterface`,并將其初始化為 `new(bar.Bar)`。這允許我們調(diào)用 `MyMethod` 方法,這個(gè)方法實(shí)際上是由 `bar.Bar` 類型實(shí)現(xiàn)的。
總結(jié)起來,在其他包中使用其它包的接口,需要實(shí)現(xiàn)接口的包定義一個(gè)新的類型,并完成接口的實(shí)現(xiàn),另一個(gè)使用接口的包需要導(dǎo)入實(shí)現(xiàn)包的路徑,并將接口轉(zhuǎn)換成實(shí)現(xiàn)類型。
go語言中main包是特殊的。一般的包名是.go文件的目錄名,編譯器會(huì)將同一目錄下的不同.go文件視作同一個(gè)包。但是main包的目錄不是main目錄,所以問題出在你使用的包名上,如果想在main包中添加函數(shù)建議寫在main函數(shù)所在的go文件中,最好的方法是創(chuàng)建另一個(gè)包,由main函數(shù)調(diào)用。