首先根据GO项目目录结构介绍,在
$GOPATH/src
目录下已经创建好了github.com/just5325/day01
目录了,day01
是项目目录名,我们就在day01
目录下开始创建我们的第一个Go语言程序。
创建我们的第一个Go语言程序
我们在当前项目(
day01
)目录下创建了文件main.go
作为入口程序
go语言的所有文件都需要指定其所在的包(package),包有两种类型,一种是 main 包,使用package main
在代码的最前面声明。 另一种就是非main包,使用package
+包名
声明。main包可以有唯一的一个main函数,这个函数也是程序的入口,只有main包可以编译成可执行文件。
虽然main包的文件名也叫main.go,但实际上包名和文件名没有直接关系。
更多关于package
的相关知识,可以阅读一下Golang Package 与 Module 简介
// package 是一个关键字,用来声明包名的。
// 如果声明的是main包,说明我们这个包可以生成一个可执行文件。
// 如果声明的不是main包,就不能单独的生成一个可执行文件,比如我们写package mysql,
// mysql这个包提供了很多函数,是专门用来连接并操作mysql的,别人是用我们mysql包提供的函数,属性等等,而不是单独的把mysql打包成一个可自行文件去访问
// 还有就是当前目录下的所有go文件,包名声明必须一样,比如我们这里声明的是main,当前目录下创建的其他go文件也必须声明为main。
// 并且main包作为程序的入口,一定要有一个唯一的main函数作为入口函数,我们可能还会有其他的很多函数,但是main函数是必须要有一个的。
package main
// 导入语句
// 导入内置的包,导入第三方的包,都是使用import语句来导入的,导入的包要用双引号来包裹
import (
"fmt"
)
// 注意:go语言中,在函数外只能定义标识符(变量、常量、函数、类型)的声明。
// 没有办法在函数外写逻辑语句。
// 函数外的每个语句都必须以关键字开始(var、const、func等等),
// 更多Go语言关键字请查看官方文档:http://docscn.studygolang.com/ref/spec#Keywords
// 程序的入口函数
// main函数没有参数,也没有返回值
func main() {
fmt.Println("你好,世界!")
}
然后执行
go run main.go
,可以看到已经成功运行并打印输出了
D:\go\src\day01>go run main.go
你好,世界!
编译
go语言使用
go build
命令进行编译打包,当然还可以跨平台交叉编译,也还有很多其他的参数,可以查看GO命令官方文档,我们这里简单的编译打包体验一下。
执行
go build
命令后,当前目录会出现一个day01.exe
的可执行文件,如果是编译的linux
的包,就会出现一个day01
的可执行文件,编译后我们直接运行一下看看。
D:\go\src\day01>go build
D:\go\src\day01>day01.exe
你好,世界!