本文介绍了golang中模块化编程的方法,以及其中需要注意的地方。
GitHub:https://github.com/SkyDreamcode/Golang.git
模块化编程,就是在不同的源代码文件中实现不同功能的函数,以方便我们在项目中的代码移植和维护。下面介绍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. 同一个文件夹下的文件只能有一个包名,否则编译报错。