Go 不同于PHP,它是编译型的语言,Go的工具链将程序的源文件转变成机器相关的原生二进制指令。
这些工具可以通过单一的go 命令配合其子命令进行使用。
今天主要讲两个子命令:
最简单的子命令是run ,它将一个或多个以.go 为后缀的源文件进行编译、链接,
然后运行生成的可执行文件。
go run helloworld.go
// 输出:
Hello,世界
Go 原生地支持Unicode ,所以它可以处理所有国家的语言。
另外一个子命令是build
它可以编译输出成一个可复用的二进制程序
go build helloworld.go
这条命令生成了一个叫做helloworld 的二进制程序
它可以不用进行任何其他处理,随时执行:
./helloworld
// 输出:
Hello,世界
代码讲解
Go 代码是使用包来组织的,包类似于PHP语言中的模块
一个包由一个或多个.go 源文件组成,放在一个文件夹中,通常该文件夹的名字描述了包的作用
package 包声明
每一个源文件的开头都以package 声明,指明这个文件属于哪个包
import 导入声明
后面跟着它导入的其它包的列表,以import 声明
例子里面只导入了一个fmt 包,如果导入多个包,有两种方式:
方式1:
import "fmt"
import "os"
方式2:
import (
"fmt"
"os"
)
Go 的标准库中有100多个包,每个包中又有许多完成编写程序时的一些常规任务的函数
特殊的包 – main包
main包比较特殊,它用来定义一个独立的可执行程序,而不是库
main包中的main函数也是特殊的,它总是程序开始执行的地方,通常main函数会调用其它包中的函数来做更多的事情
必须精确导入程序需要的包,在缺失导入或者存在不需要的包时,编译会失败,这种严格的要求可以防止程序中引用不需要的包
程序声明
然后是一些程序声明(函数、变量、常量、类型),通常以func、var、const、type 开头
一般情况下,声明的顺序是随意的
示例中在import 导入声明后面,只声明了一个函数,这个函数只调用了一个其他函数
一个函数的声明由func 关键字、函数名、参数列表(main 函数为空)、返回值列表(可以为空)、函数体(放在大括号内)组成
Go 和PHP 还有一个不同的地方是,Go 代码不需要在语句后面使用分号结尾,除非有多个语句写在同一行,实际上跟在特定符号后面的换行符被转换为分号了,所以
在什么地方换行会影响Go 代码的解析
代码格式化
Go 对于代码的格式化要求非常严格。这里又要讲一个go 命令的子命令fmt
它可以格式化指定包里的所有文件或者当前文件夹中的文件
许多编辑器可以配置为每次保存文件时自动运行go fmt
此外推荐一个可以按需管理导入声明的插入和移除的工具 goimports
它不是标准发布的一部分,可以通过执行下面命令获取到:
go get golang.org/x/tools/cmd/goimports
转载请注明:XAMPP中文组官网 » Golang语言教程之hello,world