golang包引用解析
本文内容纲要:
-golang包引用解析
golang包引用解析
环境变量配置如下:
- GOROOT----[
C:\Go
] - GOPATH----[
F:\workspace\go_home
]
vscode配置如下:
F:\workspace\go_home
是总的golang
工作空间,在下面建立两个必须的目录src
(必须[F:\workspace\go_home\src
]),pkg
(必须[F:\workspace\go_home\pkg
]),bin
(非必须.gointanll
时自动创建).
以后每一个单独的项目都是在F:\workspace\go_home
单独创建一个目录.比如下面:
F:\workspace\go_home\src\test1
F:\workspace\go_home\src\test2
test1
和test2
这是两个不同的项目.golang
主要是通过这样的目录结构,来管理包的关系.使用包(package
)这种语法元素来组织源码,所有语法可见性均定义在package
这个级别
其中重要的是,要理解应用包的定义.应用包就是一个个独立的包体,一个包一般是某个功能的源码文件组成的目录(可以有多层的子目录属于这个包).其他在最顶层的包目录,一般还会有个test
文件,用于单元测试.
那么程序怎么运行呢?
在项目顶层创建一个main.go
(程序运行入口),包名注意一定是packagemain
.
看例子,以下是整个demo的文件结构:
F:\workspace\go_home\src\test\calculate\calculate.go
//calculate.go
packagecalculate
funcMysqrt(valfloat64)float64{
z:=0.0
fori:=0;i<1000;i++{
z-=(z*z-val)/(2*val)
}
returnz
}
F:\workspace\go_home\src\test\hello\hello.go
//hello.go
packagehello
import"fmt"
funcHello(){
fmt.Println("hello")
}
F:\workspace\go_home\src\test\main.go
//main.go
packagemain
import(
"fmt"
"test/calculate" //这里import的是目录名,不是包名字,在golang中,包名可以和目录名不一致的
"test/hello" //这里import的是目录名,不是包名字,在golang中,包名可以和目录名不一致的
)
funcmain(){
hello.Hello() //注意注意注意:这里应用的是包名,不是目录名
fmt.Println(calculate.Mysqrt(5))
}
//这里import
的是目录名,不是包名字,在golang
中,包名可以和目录名不一致的
//注意注意注意:这里应用的是包名,不是目录名
这两个主要是要注意的,总的来说是import的是包的路径,引用包的东西是使用包名
本文内容总结:golang包引用解析,
原文链接:https://www.cnblogs.com/liangjf/p/9584879.html