iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0
Modern Web

golang後端入門分享系列 第 16

Day16-打包自己的 Go package

前言

在前面的文章,有稍微解說 Go 語言的 package 的機制,有內建套件或是第三方提供的套件,那如果自己在開發一個專案時,並且需要開發一個套件,以供專案使用時,那麼如何打包一個 package 呢?本篇文章就會教你如何打包一個package。

Package

套件是 Go 語言程式碼的集合,是一種程式碼模組化與重用的方式,在開發使,很難不用到套件,像是在前幾篇文章時,我們大量使用 Go 語言內建函式庫中的 fmt 或是time 套件。

這時你要開發一個套件,你必須先為他命名:

package <packagename>

我們之前有提到,上面的 package 宣告必須是 Go 檔案中的第一行程式碼,而在同一個目錄下,同層檔案的都屬於同一個 package。

再來你的 package 中一定會有幾個 function,以 fmt 為例,在這個 package 裡有許多我長用的 function,如 Println()、Printf() 或 Scanl(),而你可以發現到,這些 function 字首都為大寫,這是因為,
大寫開頭的 function,才可以供其他 package 使用,
若是小寫,該 function 只提供該 package 使用。

範例

這裡直接帶一個範例:

package stat
 
func Mean(data []float64) (mean float64){
   var sum float64
 
   for _, v := range data{
       sum += v
       }
 
   mean = sum/float64(len(data))
   return  
}

上述做了一個簡單統計的 package,其中一個 function,為 Mean,為對一組數據取平均值,如此就打包好了屬於你自己的 package 了,接著你可以上傳到你的 github 之類的,當成第三方套件供大家使用,是不是很簡單呢!

結語

上述說明了 package 的作用,也做了一個簡易的 package 示範,看似簡單,但是其實把功能獨立成一個 package,是非常重要的,雖然不這麼做,也可以建立一個專案,但是這有關於可讀性的問題,能夠區分出較整齊較完整的結構,我想大家比較能夠理解整個專案的架構。感謝今天各位讀者的閱讀,希望今天的文章對各位有幫助!


上一篇
Day15-Go介面interface
下一篇
Day17-Goroutine
系列文
golang後端入門分享30

尚未有邦友留言

立即登入留言