当前位置:网站首页>Go语言之Go 快速入门篇(一):第一个 Go 程序
Go语言之Go 快速入门篇(一):第一个 Go 程序
2022-06-11 16:08:00 【游戏编程】
安装 Go
使用 Go 语言之前,首先要安装 Go。Go 为 Linux、Mac、Windows 等不同的平台分别提供了相应的安装包:Download and install - The Go Programming Language,根据自己的操作系统选择对应的安装包点击下载,然后按照引导流程安装即可。
以 Mac 为例,除了官方提供的 Go 安装器,还可以通过 Homebrew 在终端窗口进行安装:
brew install go 安装完成后,通过 go version 查看 Go 语言的版本来验证是否安装成功(编写此教程时的最新版是 1.15.7):

开发工具选择
在本地安装完 Go 环境之后,需要选择一个趁手的开发工具来编写 Go 语言代码,目前比较流行的开发工具有 JetBrains 家付费的集成开发环境 GoLand :

以及微软家免费开源的 Visual Studio Code,使用 VS Code 的话需要安装Go 扩展:

对于新手,推荐使用 GoLand,学院君后续教程也将以 Mac + GoLand 作为本地开发环境进行演示。
第一个 Go 程序
选择好了开发工具,接下来,就可以直接开始编写第一个 Go 语言程序了,还是遵循编程语言的一贯传统,我们从 Hello World 开始 Go 语言学习之旅。
首先,我们打开 GoLand IDE,选择新建一个 hello 项目:

在 Location 中输入项目路径,最后一级目录就是项目名称,在 GOROOT 中选择正确的 Go 版本(一般默认即可),就可以点击 Create 按钮初始化项目了,初始化完成后,会进入 GoLand 主界面:

如果你之前使用过 JetBrains 家的产品,比如 PhpStorm、WebStorm、PyCharm、IntelliJ IDEA,应该会非常熟悉,这里我就不详细介绍这个 IDE 的布局了。
接下来,我们需要在这个项目中新建一个文件来编写 Go 代码,Go 源码都是存放在 .go 文件中的,所以我们在 hello 目录下新建一个 hello.go 文件:


然后在其中编写 Go 代码如下:

即:
package mainimport "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 编译器会报编译错误:
syntax error: unexpected semicolon or newline before {如果是在 GoLand IDE 中这么写,会直接显示错误提示:

另外,与 Python、JavaScript 类似,Go 程序并不要求在每个语句后面加上分号表示语句结束,这也是与 PHP、Java 等语言的不同之处。
最后,函数体很简单,就是调用 fmt 包提供的 Println 函数打印「hello,world」这行字符串,Go 语言可以直接通过包名 + . 号引用定义在该包中的函数。
编译 & 运行程序
对以上代码含义有了了解后,我们最后来编译并运行这个 Go 程序,和 PHP、Python 不同,Go 语言是编译型的静态语言(和 Java、C 一样),在运行 Go 程序之前,先要将其编译成二进制可执行文件,我们可以通过 Go 语言提供的 go build 命令对 Go 程序进行编译,然后直接运行编译后的可执行文件执行 Go 程序代码:

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

好了,关于第一个 Go 程序就简单介绍到这里
作者:程序猿15528175269
游戏编程,一个游戏开发收藏夹~
如果图片长时间未显示,请使用Chrome内核浏览器。
边栏推荐
- 用户界面之工具栏详解-AutoRunner自动化测试工具
- 【剑指Offer】21.调整数组顺序使奇数位于偶数前面
- 20 full knowledge maps of HD data analysis have been completed. It is strongly recommended to collect them!
- Detailed explanation of the functions of list and dict data types
- AI function of cutting-edge technology exploration: slow SQL discovery
- postgresql创建数据库
- Implementation of VGA protocol based on FPGA
- 想学好ArrayList,看完这篇就够了
- Laravel 8 uses passport for auth authentication and token issuance
- 最近7天,最近10天,最近90天时间处理逻辑
猜你喜欢

PostgreSQL startup process

Memory optimization table mot management

How to optimize the performance of compose? Find the answer through "underlying principles" | developers say · dtalk

List和Dict数据类型作用详解

Production problem troubleshooting reference

C# 启动一个外部exe文件,并传入参数

Detailed explanation of the functions of list and dict data types

什么是泛型?为什么要使用泛型?泛型怎么用?那包装类呢?

Streaking? Baa!

Cloud data management will break the island of storage and the island of team
随机推荐
postgresql创建数据库
Project workspace creation steps - Zezhong ar automated test tool
[sword finger offer] 22 The penultimate node in the linked list
rf中安装的第四步:安装 robotframework-selenium2library报错
AI tool for cutting-edge technology exploration: analog detection
Nat Commun|語言模型可以學習複雜的分子分布
What is a generic? Why use generics? How do I use generics? What about packaging?
leetcode785. 判断二分图(中等)
(湖南科技大学oj作业)问题 G: 串的模式匹配
用户界面之工具栏详解-AutoRunner自动化测试工具
问题 AC: 中国象棋中的跳马问题
leetcode417. 太平洋大西洋水流问题(中等)
laravel 2020-01-01T00:00:00.000000Z 日期转化
How to predict SQL statement query time?
C# 启动一个外部exe文件,并传入参数
如何优化 Compose 的性能?通过「底层原理」寻找答案 | 开发者说·DTalk
web网页设计实例作业 ——河南美食介绍(4页) web期末作业设计网页_甜品美食大学生网页设计作业成品
Streaking? Baa!
MSDN download win11 method, simple and easy to operate
Learn how to parse SQL from kernel code