前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go 语言基础入门教程 —— 第一个 Go 程序

Go 语言基础入门教程 —— 第一个 Go 程序

作者头像
学院君
发布2019-08-09 10:35:11
7110
发布2019-08-09 10:35:11
举报
文章被收录于专栏:学院君的专栏

安装 Go

使用 Go 语言之前,首先要安装 Go。Go 为 Linux、Mac、Windows 等不同的平台分别提供了相应的安装包:https://golang.google.cn/doc/install,根据自己的操作系统选择对应的安装包点击下载,然后按照引导流程安装即可。

安装完成后,通过 go version 查看 Go 语言的版本来验证是否安装成功,以 Mac 为例,对应的版本信息如下:

对于 Windows 系统对应的版本信息如下(Windows 下建议通过 MSI 安装器安装):

开发工具选择

在本地安装完 Go 环境之后,需要选择一个趁手的开发工具来编写 Go 语言代码,目前比较流行的开发工具有集成开发环境 GoLand 以及微软家开源的 Visual Studio Code,使用 VS Code 的话需要安装Go 扩展,对于新手,推荐使用 GoLand。学院君后续教程也将以 Mac + GoLand 作为本地开发环境进行演示。

第一个 Go 程序

选择好了开发工具,接下来,就可以直接开始编写第一个 Go 语言程序了,还是遵循编程语言的一贯传统,我们从 Hello World 开始 Go 语言学习之旅。

首先,我们进入用户根目录,并在该目录下创建一个 go 目录,用来存放所有的 Go 语言代码:

代码语言:javascript
复制
cd ~mkdir go

之所以在这里位置创建这个目录来存放代码,是因为 Go 语言默认的 GOPATH 环境变量值就是该路径,不管是 Linux、Mac 还是 Windows 都是如此,比如 Windows 系统下可以通过系统环境变量界面看到该配置:

关于 GOPATH 的作用和意义我们留到下一篇工程管理去详细介绍,接下来,我们继续在 go 目录下新增一个项目,取名为 test,进入该项目目录,创建一个 Go 文件 hello.go

代码语言:javascript
复制
cd ~/gomkdir testcd test touch hello.go

和 PHP 源码存放在 .php 文件类似,Go 语言源码都是存放在 .go 文件中,接下来,我们编写hello.go 源码如下:

代码语言:javascript
复制
package main
import "fmt"
func main() {    fmt.Println("hello, world")}

好了,一个简单的打印 Hello World 的 Go 代码就写好了,下面我们简单分析下每一行代码的含义。

代码解读

和 Java 类似,Go 使用包作为基本单位来管理代码(可以类比为 PHP 中的命名空间),每个 Go 源代码文件的开头都是一个 package 声明,表示该文件中 Go 代码所属的包。包是 Go 语言里最基本的分发单位,也是工程管理中依赖关系的体现。要生成 Go 可执行程序,必须建立一个名字为 main 的包,并且在该包中包含一个叫 main() 的主函数,该函数是 Go 可执行程序的执行起点,这一点和 C 语言和 Java 语言很像,后续编译 Go 项目程序的时候也要从包含 main 包的文件开始。Go 语言的 main() 函数不能带参数,也不能定义返回值。

在包声明之后,是一系列的 import 语句,用于导入该程序所依赖的包(可类比为 PHP 中通过 use 引入其它命名空间的类来理解)。由于本示例程序用到了Println() 函数,所以需要导入该函数所属的 fmt 包。

有一点需要注意,与 Java 和 PHP 不同,在 Go 语言中,不得包含在源代码文件中没有用到的包,否则 Go 编译器会报编译错误。这与下面的强制函数左花括号 { 的放置位置以及之后会提到的函数名的大小写规则,均体现了 Go 语言在语言层面解决软件工程问题的设计哲学。

所有 Go 函数(包括在面向对象编程中会提到的类型成员函数)都以关键字 func 开头(这一点与 PHP、Java、JavaScript 等语言通过 function 定义函数不同)。另外在 Go 函数中,左花括号 { 必须函数定义行的末尾,不能另起一行,否则 Go 编译器报告编译错误:

代码语言:javascript
复制
syntax error: unexpected semicolon or newline before {

如果是在 GoLand 中这么写,会直接显示错误提示:

另外,与 Python、JavaScript 类似,Go 程序并不要求在每个语句后面加上分号表示语句结束,这也是与 PHP、Java 等语言的不同之处。

最后,函数体很简单,就是调用 fmt 包提供的 Println 函数打印「hello,world」这行字符串,Go 语言可以直接通过包名+「.」号引用定义在该包中的函数。

编译 & 运行程序

对以上代码含义有了大致的了解后,我们接下来要编译并运行第一个 Go 程序,和 PHP 不同,Go 语言是编译型的静态语言(和 Java、C 一样),在运行 Go 程序之前,先要将其编译成二进制可执行文件,我们可以通过 Go 语言提供的 go build 命令对 Go 程序进行编译,然后运行编译后的可执行文件执行 Go 程序代码:

可以看到,代码执行成功,打印出了「hello,world」。此外,我们还可以通过 go run 命令来达到同样的效果,该命令将编译和执行指令合二为一,会在编译之后立即执行相应的可执行文件显示执行结果:

好了,关于第一个 Go 程序就简单介绍到这里,你学会了吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客书房 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 Go
  • 第一个 Go 程序
  • 代码解读
  • 编译 & 运行程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档