0

0

《Go语言教程系列》Hello World

Go语言进阶学习

Go语言进阶学习

发布时间:2023-07-24 17:22:27

|

852人浏览过

|

来源于Go语言进阶学习

转载

这是《Golang 教程系列》的第二篇。如果还没有,你可能需要先看一下我们的上一篇教程 Golang 介绍和环境安装 以了解一下 Golang 是什么以及如何下载 Golang。

这篇教程是基于 Go 1.16 以上的版本。

学习编程语言没有比让自己满手沾满代码的血 ? 更有效的方法了。让我们一起开始第一个 Go 程序吧。(First Blood)

设置开发环境

让我们先创建一个编写 hello world 程序的文件夹。请打开命令行然后运行下面的命令:

mkdir ~/Desktop/learngo/

上面的命令将会在用户桌面创建一个名为 learngo 的文件夹(译者开发环境为 Macbook Pro)。你可以在任意位置创建目录编写代码。

Hello World

使用你喜爱的文本编辑器在 learngo 文件夹中创建一个名为 main.go 的文件并写入以下内容:

package main

import "fmt"

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

在 Go 中将包含 main 函数的文件命名为 main.go 是约定俗称的,但是其他名称也是可以使用。

运行一个程序

有几种不同的方式来运行 Go 程序。让我们一一看一下。

1. go install

第一个运行 Go 程序的方法是使用 go install 命令。让我们来使用 cd 命令进入刚创建的 learngo 目录

cd ~/Desktop/learngo/

接着运行下面的命令。

go install

上面的命令将编译当前程序并将其安装(拷贝)二进制可执行文件到 ~/go/bin 目录。二进制可执行文件的名字是包含 main.go 文件的文件夹名。在我们示例中,它将被命名为 learngo

当你尝试安装程序时,你可能会遇到以下错误。

go: cannot find main module; see 'go help modules'

上面的错误实际上意味着,go install 无法找到 main 模块,这是因为我们没有初始化 go modules,我们使用以下命令初始化模块:

go mod init github.com/youngjuning/learngo

上面的命令会在 learngo 目录下创建一个 go.mod 文件,该文件是程序模块定义的地方,作用类似于 Node 的 package.json 文件。然后我再执行 go install 便可以成功。

你可以在命令行输入 ls -al ~/go/bin/learngo,然后你会发现 go install 实际上是把二进制可执行文件放在了 ~/go/bin 中。

现在让我们运行编译后的二进制可执行文件。

~/go/bin/learngo

上面的命令将运行 learngo 并打印出以下内容:

Hello World

恭喜你!你已经成功地运行了你的第一个 Go 程序。

如果你不想每次都输入完整的 ~/go/bin/learngo 路径来运行程序,你可以添加 ~/go/bin/ 到你的 PATH 中。

export GOPATH=~/.go
export PATH=${PATH}:$GOPATH/bin

现在你可以在命令行中只输入 learngo 来运行程序。

你可能想知道,当 learngo 目录包含多个 Go 文件而不只是只有 main.go 时会发生什么。在这种情况下,go install 将如何工作?请继续往下看,我们将在了解软件包和 Go 模块时讨论这些内容。

2. go build

运行程序的第二个选项是使用 go buildgo buildgo install 非常相似,不同之处在于它不会将编译的二进制文件安装(拷贝)到路径 ~/go/bin/,而是在 go build 所在的文件夹下创建二进制文件:

在命令行输入以下命令来切换当前目录到 learngo

cd ~/Desktop/learngo/

然后输入下面的命令:

go build

上面的命令将会在当前目录下创建一个名为 learngo 的二进制可执行文件。ls -al 命令可以证实名为 learngo 的文件被创建了。

输入 ./learngo 来运行程序,将会输入和前面一样的内容:

Hello World

到此,我们用 go build 也成功地运行了我们的第一个 Go 程序 ?

3. go run

第三个运行程序的方法是使用 go run 命令。

在命令行输入 cd ~/Desktop/learngo 命令来改变当前目录为 learngo

然后输入以下命令。

go run main.go

输入以上命令后,我们也可以看到一样的输出:

Hello World

go run 命令和 go buildgo install 命令之间的一个细微差别是,go run 要求使用 .go 文件的名称作为参数。

在引擎盖下,go run 的工作原理与 go build 非常相似。无需将程序编译并安装到当前目录,而是将文件编译到一个临时位置并从该位置运行文件。如果你想知道 go run 将文件编译到的位置,请使用 --work 参数运行 go run

go run --work main.go

在我的场景中,运行以上命令会输出下面的内容:

WORK=/var/folders/mf/_fk8g5jn23gcw970pypqlv4m0000gn/T/go-build3519209434
Hello World

WORK 的值表示程序将被编译到的一个临时位置。

就我的场景而言,程序被编译到 /var/folders/mf/_fk8g5jn23gcw970pypqlv4m0000gn/T/go-build3519209434 。这可能因你的情况而异 ?

4. Go Playground

运行程序的最后一种方法是使用 go playground。尽管此方法有一些限制,但由于我们可以使用浏览器并且不需要在本地本地安装 Go:我已经为 Hello World 程序创建了一个 playground。点击此处 以在线运行该程序。

你还可以使用 Go Playground 与他人分享你的源代码。

既然我们知道 4 种不同的方式来运行程序,那么你可能会很困惑该使用哪种方法。答案是,当我想快速检查逻辑或找出标准库函数如何工作时,通常使用 playground。在大多数其他情况下,我更喜欢 go install,因为它为我提供了从终端中任何目录运行程序的选项,因为它将所有程序编译到标准的 ~/go/bin/ 路径。

对 Hello World 程序的简短解析

这是我们刚刚创建的简单的 hello world 程序:

package main

import "fmt"

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

我们将简要讨论该程序的每一行的作用。在接下来的教程中,我们将深入研究程序的每个部分。

「package main」 - 每个 go 文件都必须以 package name 开始。Packages 用于提供代码分隔和可重用性。此处使用包名称 main。主要功能应始终保留在 main package 中。

「import "fmt"」 - import 语句用于导入其他软件包。在我们的例子中,fmt 包被导入,它将在 main 函数中用于将文本打印到标准输出。

「func main()」 - func 关键字标记函数的开始。main 是一个特殊函数。程序从 main 函数开始执行。大括号 {} 表示 main 函数的开始和结束。

「fmt.Println("Hello World")」 - fmt 软件包的 PrintIn 函数用于将文本写入标准输出。package.function() 是在包中调用函数的语法。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

2

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

104

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

12

2026.01.26

苹果官方查询网站 苹果手机正品激活查询入口
苹果官方查询网站 苹果手机正品激活查询入口

苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

93

2026.01.26

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

5

2026.01.26

windows安全中心怎么关闭 windows安全中心怎么执行操作
windows安全中心怎么关闭 windows安全中心怎么执行操作

关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

6

2026.01.26

2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

96

2026.01.26

个人所得税税率表2026 个人所得税率最新税率表
个人所得税税率表2026 个人所得税率最新税率表

以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

27

2026.01.26

oppo云服务官网登录入口 oppo云服务登录手机版
oppo云服务官网登录入口 oppo云服务登录手机版

oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

75

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.9万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.9万人学习

Go 教程
Go 教程

共32课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号