如何将Go代码转换为库?

时间:2016-05-19 13:13:39

标签: go libraries

我知道如何制作一个函数,将所有给定的参数和一个减法相加,我想制作一个简单的数学库,用于加法和减法以及乘法和除法,但我的互联网搜索如何编译成图书馆没有结果。我想知道是否有办法将.go写入库中,如果有,你怎么做。我仍然是Go的新手。如果你知道怎么请告诉我

1 个答案:

答案 0 :(得分:1)

如果您在包裹上运行go install,它会为您创建一个包含该包名称的静态库,并将其放在GOPATH/pkg/ARCH/packageName/packageName.a中。例如,如果您将$GOPATH设置为/home/yourname/go,则可以创建以下文件:

/home/yourname/go/src/myMath/myMath.go

内容为:

package myMath

func MyAdd(/* .... */) { // Capatalize the name of the function to allow it to be accessible from outside of this package
   // Do stuff
}

现在,如果您执行go install,您将在上面的目录中拥有一个myMath.a库。

要在另一个go包中使用此库,myStats说,您可以执行以下操作:

package myStats

import "myMath" // import your library. notice the "" around the name

func someFunction(/* .... */) {
   r := myMath.MyAdd(/* ..... */)
}

再次注意,您必须将您希望使用的功能的名称大写在包外。例如,如果您的添加功能被称为myAdd,那么即使您导入myStats包,也无法从myMath访问该功能。

编辑根据@icza的评论修正了一些错误。