在安装完Go语言环境后,我们从写一个Hello World 来熟悉一下go。
package main
import "fmt"
func main() {
fmt.Println("Hello World~")
}
在源文件所在的目录输入如下命令:
go run main.go
输出如下:
Hello World~
也可以先运行 “go build” 命令编译
# 运行 "go build" 命令编译
go build main.go
# 编译成功后,运行如下命令
./main.go
# 输出
Hello World~
通过这个程序我们可以看到Go语言程序的结构非常简单,只需要短短几行代码就能跑起来。接下来简单分析一下上面这几行代码的结构。
包的声明
Go语言以“包”作为程序项目的管理单位。如果要正常运行Go语言的源文件,则必须先声明它所属的包。每一个Go源文件的开头都是一个 package 声明,格式为 package xxx
。其中package 是声明包的关键字,xxx是包的名字。一般来说,Go语言的包与源文件所在的文件夹有一一对应的关系。
Go语言的包具有以下几个特点:
- 一个目录的同级文件属于一个包。
- 包名可以与其目录名不同。
- main 包是Go 语言应用程序的入口包。一个Go语言应用程序必须有且仅有一个main包。如果一个程序没有main包,则编译时将会报错,无法生成可执行文件。
包的导入
在声明了包之后如果需要调用其他包的变量或者方法,则需要使用 import 语句。 import语句用于导入程序中所依赖的包,导入的包使用英文双引号(" "
)包围,格式如下 import “package_name”。其中import 是导入包的关键字, package_name 是导入包的名字。例如 import “fmt” 语句就表示导入了 fmt 包,fmt 包是Go语言标准库为我们提供的、用于格式化输入输出的内容,在开发调试的过程中会经常用到。这行代码会告诉Go编译器我们需要使用到 fmt 包中的变量或者函数等。
在导入包的过程中要注意:如果导入的包没有被使用,则Go语言编译器会报错。在实际编码中,集成开发环境(Integrated Development Environment)类编译器(比如Goland等) 会自动提示哪些包没有被使用。
可以用 import 关键字同时导入多个包,此时需要用"( )"将包的名字包围起来,并且每个包名占用一行。形式如下:
// import 同时导入多个包
import (
"os"
"fmt"
)
// 给导入的包设置别名
import (
alias1 "os"
alias2 "fmt"
)
如果只是想初始化某个包,不使用导入包中的变量或者函数,则可以直接以下画线代替别名:
import (
_"os"
alias2 "fmt"
)
已经使用下画线代替了别名继续再调用这个包的时候则会在编译时返回 "undefined:包名"的错误。比如上面这段代码在编译时会返回 "undefined: os"的错误。
main 函数