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. 同一个文件夹下的文件只能有一个包名,否则编译报错。

 

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