项目结构
环境配置
go 命令依赖一个重要的环境变量:$GOPATH
,它表示GO项目的路径,如下设置
export GOPATH=/home/t/gospace
1
2
|
export
GOPATH
=
/
home
/
t
/
gospace
|
对于GOPATH来说,允许多个项目目录(Unix中为“:”,Windows中为“;”)。
项目目录
在项目目录中,一般包含三个文件夹,分别为src
,pkg
和 bin
。各个文件夹功能如下,
- src 存放golang源码
- pkg 存放编译后的文件
- bin 存放编译后可执行的文件
模块导入
在golang中,模块导入包括两种导入方式:相对路径和绝对路径。
相对导入
当前文件同一目录的model目录,但是不建议这种方式来import
import ( "./test1" "../test2" )
1
2
3
4
5
|
import
(
"./test1"
"../test2"
)
|
绝对导入
前提条件需要把该项目加入到golang的GOPATH中,
import ( "project/module1" "project/module2/t" )
1
2
3
4
5
|
import
(
"project/module1"
"project/module2/t"
)
|
import的其他操作
点操作
点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,
import . "fmt" func test() { Println("test") }
1
2
3
4
5
6
|
import
.
"fmt"
func
test
(
)
{
Println
(
"test"
)
}
|
别名操作
别名操作就是把包命名成另一个名字
import f "fmt" func test() { f.Println("test") }
1
2
3
4
5
6
|
import
f
"fmt"
func
test
(
)
{
f
.
Println
(
"test"
)
}
|
_操作
操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数
文件1: module/module1.go
package module1 import "fmt" func init() { fmt.Println("this is module1") }
1
2
3
4
5
6
7
8
|
package
module1
import
"fmt"
func
init
(
)
{
fmt
.
Println
(
"this is module1"
)
}
|
文件2: main.go
package main import ( "fmt" _ "module" ) func main() { fmt.Println("this is a test") }
1
2
3
4
5
6
7
8
9
10
11
|
package
main
import
(
"fmt"
_
"module"
)
func
main
(
)
{
fmt
.
Println
(
"this is a test"
)
}
|
output:
this is module1 this is a test
1
2
3
|
this
is
module1
this
is
a
test
|
转自 https://www.cnblogs.com/coder2012/p/4816894.html