Go 之基礎速學 (三) 包的引用、“實體類” 的使用套路 (t)

huxiaobai_001發表於2020-04-26

做phper的可能很少了解到包的概念,因為php當中沒有包的概念,java裡面有
包:最直觀的作用就是協調和組織我們的程式碼,方便歸類和複用,提高程式碼的可維護性
另外大家也看到了標題當中雙引號引起了“實體類”,是因為golang裡面是不存在類的概念的!

我們先來看包的引用:
包最直觀的作用就是協調和組織我們的程式碼,方便歸類和複用,提高程式碼的可維護性
找到你的gopath目錄建立包目錄
E:\gopath\src\com.huxiaobai
一般包的目錄都是以專案的網址命名,我們也不知道為啥,就這麼弄吧,com.huxiaobai就是一個包也可以理解為一個專案吧!
我們知道golang語言一定是要有入庫檔案的,我們建立一個公共的包叫做appmain子包,在這個main子包當中你可以隨意定義一個檔名字隨意,只不過package main必須是這麼寫,並且該檔案當中必須要有 func main(){}
比如:
Go 之基礎速學 (三) 包的引用、“實體類”的使用套路(t)
另外我們再去定義一個服務的包叫做sevices包吧,在這個包裡面建立NewsService.go和UserService.go檔案
UserService.go裡面的package services
NewsService.go裡面的package services
預設情況下建立好了檔案會自動的將package的名稱命名為上級包的名稱
當然也可以改 但是 如果要改的話 那麼services包裡面的所有的go檔案的package必須保持一致!
比如在
com.huxiaobai/services/NewsService.go的package abc
com.huxiaobai/services/UserService.go的package abc
也是可以的 但是必須在services子包裡面的所有檔案的package保持一致!
一般不建議修改 預設上級包的名稱即可!
a.同一個包內之間的相互呼叫
Go 之基礎速學 (三) 包的引用、“實體類”的使用套路(t)
Go 之基礎速學 (三) 包的引用、“實體類”的使用套路(t)
直接呼叫即可!前提是package包名稱一致!直接呼叫函式即可!
b.跨包之間的函式呼叫
Go 之基礎速學 (三) 包的引用、“實體類”的使用套路(t)
Go 之基礎速學 (三) 包的引用、“實體類”的使用套路(t)
Go 之基礎速學 (三) 包的引用、“實體類”的使用套路(t)
要點在圖中都已經很清晰了:
a.跨包呼叫那麼被呼叫的函式首字母必須大寫 大寫之後 包內的相互呼叫也要大寫了哦
b.在main包當中輸入GetUser()的時候會自動給你載入services包路徑 com.huxiaobai/services表示的是包路徑

以上就是包的引入和包內函式呼叫以及跨包函式呼叫的要點!是不是很簡單?

本作品採用《CC 協議》,轉載必須註明作者和本文連結

胡軍

相關文章