前面我们介绍了Golang的环境搭建,如何安装、配置Golang环境、配置Go工作目录:GOPATH。
通过前面学习想必大家已经对Golang有了一定的了解,那要怎么来创建一个Go语言程序呢?下面就来领大家实现一个简单的程序:helloworld。
一、创建第一个GO程序
下面创建我们第一个Go程序,helloworld。其实非常简单,仅需要几行代码就可以搞定,如下所示:
package main import ( "fmt" ) func main() { fmt.Println("Hello World!") }
将上面的程序保存成 helloworld.go,然后在命令行中执行:go run helloworld.go
我们看到程序成功输出:Hello World!,说明我们的第一个Golang程序运行成功。
二、GO程序的基本结构
上面,我们成功创建并运行了一个helloworld.go 。虽然程序运行了,但是,想必大家也许不明白这些代码的含义,没关系,下面就来一一介绍:
1. package(声明main包)
Go语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明,格式如下:package mian
其中 package 是声明包名的关键字,main 为具体包的名字。
Go语言的包与文件夹是一一对应的,它具有以下几点特性:
- 一个目录下的同级文件属于同一个包。
- 包名可以与其目录名不同。
- main 包是Go语言程序的入口包,一个Go语言程序必须有且仅有一个 main 包。如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。
2. import(导入包)
在包声明之后,是 import 语句,用于导入程序中所依赖的包,导入的包名使用双引号""
包围,格式如下:
import "fmt"
其中 import 是导入包的关键字,fmt为所导入包的名字,是Go提供的标准库。
需要注意的是,导入的包中不能含有代码中没有使用到的包,否则Go编译器会报编译错误,例如 imported and not used: "xxx"
,"xxx" 表示包名。
3. main 函数
通过func main()
创建了一个 main 函数,它是Go语言程序的入口函数,也即程序启动后运行的第一个函数。main 函数只能声明在 main 包中,不能声明在其他包中,并且,一个 main 包中也必须有且仅有一个 main 函数。这个跟C或是C++类似。
main 函数是自定义函数的一种,在Go语言中,所有函数都以关键字 func 开头的,定义格式如下所示:
func 函数名 (参数列表) (返回值列表){ }
格式说明如下:
- 函数名:由字母、数字、下画线
_
组成,其中,函数名的第一个字母不能为数字,并且,在同一个包内,函数名称不能重名。 - 参数列表:一个参数由参数变量和参数类型组成,例如
func foo( a int, b string )
。 - 返回值列表:可以是返回值类型列表,也可以是参数列表那样变量名与类型的组合,函数有返回值时,必须在函数体中使用 return 语句返回。
注意:Go语言函数的左大括号{
必须和函数名称在同一行,否则会报错。
4. fmt.Println("Hello World!")
调用fmt包中的Println函数格式化输出相关的内容。比如字符串、整数、小数等,与C语言中printf 函数类似。
另外,我们看到Go语言不需要使用;
来作为结束符,Go 编译器会自动帮我们添加,当然,在这里加上;
也是可以的。
三、编译&运行
上面的helloworld示例程序编写完之后,接下来我们运行helloworld.go,验证是否执行成功。在命令行中执行:go run helloworld.go
编译运行该程序,输出结果如下:
Golang还提供了go test、go run、go build 、命令主要是用于测试、编译、运行、打包程序。在包的编译过程中,若有必要,会同时编译与之相关联的包。
- go build 命令主要用于打包项目
- go run 命令主要用于编译并运行Go程序。例如:
go run helloworld.go
- go test 命令会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。
最后
以上,我们第一个Go语言程序:helloworld 创建并运行成功了,相信大家已经知道如何创建一个简单的Go语言程序了,赶快动手试试吧!