GO語(yǔ)言導(dǎo)入自己寫(xiě)的包(同級(jí)目錄和不同目錄)
作為自學(xué)小白,困擾了我好久的問(wèn)題,解決這個(gè)問(wèn)題后,記錄該文章 用以幫助后續(xù)剛?cè)腴T(mén)的朋友
一、在GOPATH環(huán)境變量里的src文件下創(chuàng)建一個(gè)練習(xí)文件test2(不能含有下劃線(xiàn))
二、創(chuàng)建一個(gè)主函數(shù)main.go(每一個(gè)項(xiàng)目中都必須有一個(gè)main包),say.go(用于展示同級(jí)目錄),calc文件夾,且calc文件夾內(nèi)創(chuàng)建一個(gè)calc.go(用于展示不同級(jí)目錄)
1、調(diào)用同級(jí)目錄的方法
項(xiàng)目結(jié)構(gòu)如下圖

在main.go中代碼如下
package main //每個(gè)程序必須要有的一個(gè)包 main
import "fmt"
func main() {
fmt.Println("我是main.go里面的main函數(shù)")
}
在say.go中的代碼如下
package main //因?yàn)楹蚼ain.go函數(shù)是同級(jí),所以只能使用和main.go一樣的包名 : main 不然會(huì)找不到
import "fmt"
func sayHello() {
fmt.Println("我是say.go里面的sayHello函數(shù)")
}這個(gè)時(shí)候 在main.go中的main函數(shù)可以直接調(diào)用同級(jí)目錄say.go中的sayHello函數(shù)。輸入同級(jí)代碼時(shí)會(huì)出現(xiàn)提示

在main函數(shù)中直接使用即可 sayHello(),結(jié)果如下

2、調(diào)用不同目錄的包
首先在當(dāng)前的目錄中初始化(該演示項(xiàng)目為test2,在終端中 輸入go mod init '當(dāng)前的項(xiàng)目名'),初始化結(jié)束后,會(huì)發(fā)現(xiàn)在項(xiàng)目中多了一個(gè)go.mod文件
go mod init test2

打開(kāi)go.mod文件
module test2 go 1.22.4
在calc文件夾中的calc.go中填寫(xiě)以下代碼 (注意 共有 和 私有 方法)
package calc //包名最好和文件夾名一致
//方法名的首字母為大寫(xiě),意味著可以讓其他目錄調(diào)用(共有)
func Add(a, b int) int {
return a + b
}
//方法名的首字母為小寫(xiě),意味著只能讓同一個(gè)包名的使用(私有)
func minus(a,b int) int {
return a - b
}在main.go中引入calc文件夾里的包
package main //每個(gè)程序必須要有的一個(gè)包 main
import "fmt"
import "test2/calc" //test2 是go.mod中module后面的值, / 后面接你要導(dǎo)入的文件夾
//也可以使用 improt ("fmt" "test2/calc")
func main() {
fmt.Println("我是main.go里面的main函數(shù)")
sayHello()
result := calc.Add(1, 2) //能夠使用calc包里面的共有函數(shù)Add;如果使用私有函數(shù)就會(huì)報(bào)錯(cuò)
fmt.Printf("result:%d", result)
}
至此 調(diào)用同級(jí)目錄和不同級(jí)目錄的包 就成功實(shí)現(xiàn)了
到此這篇關(guān)于GO語(yǔ)言導(dǎo)入自己寫(xiě)的包(同級(jí)目錄和不同目錄)的文章就介紹到這了,更多相關(guān)GO語(yǔ)言導(dǎo)入自己寫(xiě)的包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go并發(fā):使用sync.WaitGroup實(shí)現(xiàn)協(xié)程同步方式
這篇文章主要介紹了Go并發(fā):使用sync.WaitGroup實(shí)現(xiàn)協(xié)程同步方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05
go語(yǔ)言題解LeetCode674最長(zhǎng)連續(xù)遞增序列
這篇文章主要為大家介紹了go語(yǔ)言題解LeetCode674最長(zhǎng)連續(xù)遞增序列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Go語(yǔ)言如何高效的進(jìn)行字符串拼接(6種方式對(duì)比分析)
本文主要介紹了Go語(yǔ)言如何高效的進(jìn)行字符串拼接(6種方式對(duì)比分析),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Go中函數(shù)的使用細(xì)節(jié)與注意事項(xiàng)詳解
在Go語(yǔ)言中函數(shù)可是一等的(first-class)公民,函數(shù)類(lèi)型也是一等的數(shù)據(jù)類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于Go中函數(shù)的使用細(xì)節(jié)與注意事項(xiàng)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11

