Go语言开发环境要设置环境变量 GOPATH,构建一个项目,就需要将这个项目的目录添加到 GOPATH 中,多个项目之间可以使用;分隔
目录结构
一个Go语言项目的目录一般包含以下三个子目录:
src 目录:放置项目和库的源文件;
pkg 目录:放置编译后生成的包/库的归档文件;
bin 目录:放置编译后生成的可执行文件
src 目录
- 用于以包(package)的形式组织并存放 Go 源文件,这里的包与 src 下的每个子目录是一一对应。例如,若一个源文件被声明属于 log 包,那么它就应当保存在 src/log 目录中。一般来说,一个文件夹为一个包,一个包中中只能出现一个package main
如果src 目录下存放 Go 源文件,就只能声明该源文件属于 main 包了 - 包是Go语言管理代码的重要机制,其作用类似于Java中的 package 和 C/C++ 的头文件。Go 源文件中第一段有效代码必须是package <包名> 的形式,如 package hello。
另外需要注意的是,Go语言会把通过go get 命令获取到的库源文件下载到 src 目录下对应的文件夹当中。
pkg 目录
- 用于存放通过go install 命令安装某个包后的归档文件。归档文件是指那些名称以“.a”结尾的文件。
- 该目录与 GOROOT 目录(也就是Go语言的安装目录)下的 pkg 目录功能类似,区别在于这里的 pkg 目录专门用来存放项目代码的归档文件。
- 编译和安装项目代码的过程一般会以代码包为单位进行,比如 log 包被编译安装后,将生成一个名为 log.a 的归档文件,并存放在当前项目的 pkg 目录下。
bin 目录
在通过go install 命令完成安装后,保存由 Go 命令源文件生成的可执行文件。在类 Unix 操作系统下,这个可执行文件的名称与命令源文件的文件名相同。而在 Windows 操作系统下,这个可执行文件的名称则是命令源文件的文件名加 .exe 后缀。
源文件
-
命令源文件:如果一个 Go 源文件被声明属于 main 包,并且该文件中包含 main 函数,则它就是命令源码文件。命令源文件属于程序的入口,可以通过Go语言的go run 命令运行或者通过go build 命令生成可执行文件。
-
库源文件:库源文件则是指存在于某个包中的普通源文件,并且库源文件中不包含 main 函数。
-
同一个目录下不能定义不同的package,应该分为两个不同的目录才可以。在go中,则是任何一个package中,唯一一个带有main方法的go文件,也就是说,一个package下,只能有一个main方法,不管是在那个文件中,但是只能有一个,这个package是按照文件夹区分的,举个栗子:
main下的Test和util两个go中只能有一个go文件中有main方法,如果这两个文件都包含main方法,就会报错,
main下的basic目录下,有var.go,这个文件夹下也可以有一个main方法
实战总结:
出现一些文件加载不了的问题,可能是工程目录的环境变量设置的问题
1.第一种,windows的窗口进行设置
第二种,命令进行设置
::关闭回显
@echo off
::设置要永久加入到path环境变量中的路径
setx GOROOT "%GOROOT%D:\go"
setx GOPATH "%GOPATH%D:\go\WORK_SPACE"
setx GOBIN "%GOBIN%D:\go\WORK_SPACE\bin"
exit
第一个代码,输出九九乘法表
package main
import "fmt"
func main() {
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d\t", j, i, j*i)
}
}
}