package main
import "fmt"
func main() {
fmt.Println("简单的go程序")
}
Go通过包的方式管理程序,每个Go源代码文件都必须什么自己所在的包,如上面,
package main
声明自己所在的包是main包。
每个程序都必须有一个main包,main包作为整个程序编译的入口包,main包中的Main()函数作为程序的执行入口。
import关键字是导入其他包,导入某个包后就能在当前文件中使用这个包中的函数,例如上面的main包导入fmt包后,可以使用fmt包中的函数println()
可以使用go的build工具编译test.go文件
go build test.go
编译后,将当前路径下生成一个可执行的二进制文件:Windows下生成test.exe文件
执行test.exe 输出 简单的go程序
第二种方法:
将编译和运行两个步骤合二为一,go run不会生成可执行的二进制文件。
go run将编译得到的文件放到一个临时目录,然后执行,执行完成后自动清理临时目录,
go run test.go
关于包和go文件
每个go代码文件只能且必须使用package语句声明一个包,也就是说一个文件中不能包含多个包。
Go中有两种类型的包,或者说是两种类型的文件:
1.编译后成为可执行文件的包,也就是main包编译后得到的文件
2.编译成共享文件包,只要go程序文件中声明的不是main包,就是库文件。
两种类型的库文件
1.标准库
是随Go安装的时候放在go安装目录下的($GOROOT/src)
2.第三方库
放在workspace目录下的
库文件中的大小写命名
go通过名称首字母大小写决定属性是否允许导出:
1.首字母大写的属性是允许导出的属性
2.首字母小写的属性是不允许被导出
例如:test.go中
func first() {
}
func Second() {
}
当导入这个包的时候,由于first首字母是小写,外界无法使用,只能在test.go包中使用,对外界不可见。大写字母开头的Second()函数能会被导入,所以可用
工作空间workspace
每个workspace都是一个目录,该目录下至少包含三个目录:
1.src
该目录用于存放Go源代码文件(也称命令的源文件)
2.bin
该目录用于存放可执行命令(即构建后可执行的二进制go程序,也称命令文件)
3.pkg
该目录用于存放共享库文件(即构建后非可执行程序的酷宝,也成为了包对象文件)