Go语言的第一行代码

 阅读大约需要1分钟

Go语言的第一行代码

前一篇文章我们介绍了为什么要学习Go语言,本篇文章我们来编写Go语言的第一行代码。

在编写代码之前,我们首先需要安装Go语言的开发环境,可以从谷歌国内的官方网站golang.google.cn/dl/下载安装包,根据你使用的操作系统下载对应的安装包。前一篇文章提到过Go语言是跨平台的,所以Go语言各个平台有不同的安装包,一定要看好你使用的操作系统,而且同一个平台根据CPU型号的不同又分为386、amd64、arm架构。

使用windows系统的同学建议下载后缀为msi的安装程序,不建议没有经验的同学下载zip包,zip包不需要安装,但是需要手动配置环境变量,可以根据自己的喜好选择下载。

使用mac系统的同学除了可以下载安装程序包以外,还可以使用mac系统的软件包管理器brew下载,使用brew来安装Go比较简单,执行如下命令即可

brew install go

使用linux发行版的同学,由于linux发行版本较多,不同的发行版包管理器不同,可以根据自己使用的发行版自带包管理器来安装下载。

Go语言编译器安装好后,在命令行

输入以下命令

go version

如果正常输出Go语言版本,如下面mac系统输出

go version go1.21.0 darwin/amd64

说明安装成功。

接下来我们来开始编写Go语言的第一行代码。

新建文件夹hello,进入文件夹hello,执行如下命令:

go mod init example/hello

会创建go.mod文件,go.mod是golang管理依赖的工具后面会具体介绍。

创建一个文件hello.go,输入以下代码:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

让我们来看一下每个部分的含义:

  • package main:这是一个包声明,它告诉编译器这个文件属于main包。

  • import “fmt”:这是一个导入语句,它导入了fmt包,该包提供了格式化输入输出的函数。

  • func main():这是程序的入口函数,它是程序执行的起点。

  • fmt.Println(“Hello, World!"):这是一个函数调用,它调用了fmt包中的Println函数,并传递了一个字符串参数"Hello, World!"。Println函数会将该字符串打印到标准输出。

所以,这段代码的作用是在控制台输出"Hello, World!"。

执行以下命令运行程序,

go run hello.go

可以看到输出结果

Hello, World!

至此,Go语言的第一个程序就完成了。

用go run命令可以直接运行程序,类似动态语言如python,一般Go语言都是编译之后在执行。我们可以使用go build hello.go命令编译程序,之后会生成一个可执行程序。

我们可以看到生成了一个可执行的程序,在macOS上大小是1.9M,这个简单的Hello, World!的程序大小和C语言相比的确是太大了。go build编译默认包含调试信息和符号表信息,我们可以添加标识去掉这些信息,可以使用如下命令编译

go build -ldflags "-w -s" hello.go

执行之后我们可以看到生成的文件大小变为了1.3M。

由于Go语言在生成可执行文件时包含了运行时,所以Go语言生成的可执行文件相比C语言的程序是比较大的,C语言Hello, World!程序的大小是49k。

Go语言的第一行代码就介绍到这里!