golang的模塊化編程即不同文件間函數的調用

本文介紹了golang中模塊化編程的方法,以及其中需要注意的地方。

GitHub:https://github.com/SkyDreamcode/Golang.git

參考:https://www.runoob.com/go/go-program-structure.html


模塊化編程,就是在不同的源代碼文件中實現不同功能的函數,以方便我們在項目中的代碼移植和維護。下面介紹golang語言的模塊化編程的簡單實現方法。

在不同的兩個文件中定義實現兩個整形變量的加減兩個函數。具體如下:

文件:mathadd.go

package mathClass

func Submy(x, y int) int{
        return x - y;
}

文件:mathsub.go

package mathClass

func Addmy(x, y int) int{
        return x + y;
}

將這兩個文件放在目錄myMath中。

 

然後在工程目錄中建立文件main.go文件:

package main //defaine package name

import "./myMath"//let the compiler know that program uses our own defined package  
import "fmt" //let compiler know that the program uses package fmt

func myPrint(){
        fmt.Println("start leran go program");
        fmt.Println(mathClass.Addmy(2,4));
        fmt.Println(mathClass.Submy(5,2));

}

func main(){
        myPrint();
        fmt.Println("end print");

}

工程目錄:

 

然後使用sudo go build mina.go編譯工程文件。執行./main。出現如下結果:

 

注意點:

1.一個go源文件中的函數如果要被文件外的函數調用,那麼這個函數的函數名的首字母必須大寫,否則會報錯。

這也符合:當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那麼使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱爲導出(像面嚮對象語言中的 public);標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的(像面嚮對象語言中的 protected )。

2. 文件名與包名沒有直接關係,不一定要將文件名與包名定成同一個。

3. 文件夾名與包名沒有直接關係,並非需要一致。

4. 同一個文件夾下的文件只能有一個包名,否則編譯報錯。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章