golang Package

golang Package,第1张

概述自定义package,首先需要设定GOPATH,这是自定义package的src文件以及生成.a文件的存放地;假设GOPATH的值为~/mypackage,则需要在mypackage目录下,创建src,bin,pkg目录,其中src目录下存放源码。pkg目录下会存放由go install生成的.a文件; 此处有个一注意点。每个pkg必须是文件夹+其对应的go文件组成。假设要生成math的Avera 自定义package,首先需要设定GOPATH,这是自定义package的src文件以及生成.a文件的存放地;假设GOPATH的值为~/mypackage,则需要在mypackage目录下,创建src,bin,pkg目录,其中src目录下存放源码。pkg目录下会存放由go install生成的.a文件;

此处有个一注意点。每个pkg必须是文件夹+其对应的go文件组成。假设要生成math的Average函数;代码如下:

点击(此处)折叠或打开

package math

func Average(xs []float64) float64 {
total := float64(0)
for _, x := range xs {
total += x
}
return total / float64(len(xs))
} 则需要在~/mypackage/src目录下在创建 pjname/math/math.go其中go文件保存上面的代码。在此pjname目录必须存在,否则编译会报错。也许go不允许自定跟package吧。math.go的文件名可以自定义;
保存完毕后,可以在math目录下运行go install,则系统会自动生成math.a文件,存放在~/mypackage/pkg/$ GOOS_GOARCH/pjname/math.a;

如果没有pjname目录,而直接生成math目录,install 会报错l go install: no install location for directory /home/test/gogo/src/math outsIDe GOPATH; 报此错是因为math是系统自带的package,用在这里冲突了。把math改为mymath就可以了;



下面写个小例子展示一下package name,import name,这两句话中的name分别对应什么?
当前目录是/home/test/gogo/src,设置GOPATH=/home/test/gogo find ./列出目录结构; ./
./mymath
./mymath/math.go
./mymain
./mymain/hello.go
下面列出代码math.go

点击(此处)折叠或打开

package math
func Average(i,j int)int{
return (i+j)>>2
}
这里列出hello.go

点击(此处)折叠或打开

package main
import "mymath"
func main(){
print("hello world\n",math.Average(8,12));

} 注意上面的代码,math.go 存放在mymath目录中,所以生成的package,import时写mymath; 不过在math.go中的package写的package math;,在hello.go的地4行使用时仍旧写math.Average; 所以import的是.a的文件名; 使用时该程序中的package定义的名字; 小例子只是说明对应关系,自己定义package时还是保持稳健名一致比较好了.否则其他人看代码时都不知道引用的那个文件中的了. 总结

以上是内存溢出为你收集整理的golang Package全部内容,希望文章能够帮你解决golang Package所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1290347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存