一、说明
本文来自go官网的英文教程,我反正也是学,就翻译过来看了,顺便记录一下,中间可能穿插点小心得,原文来自go官网
在本教程中,我会简要给你介绍下go语言编程。通过本文,你能学到
- 安装go
- 写一个简单的“hello,word”代码
- 使用go命令运行代码
- 使用Go语言包发现工具去寻找你能使用在代码中的包
- 调用外部模块的函数
二、准备工作
- 需要一些编程经验。虽然这里的代码非常简洁,但是它能帮助我们了解一些函数相关知识。
- 一个能够编写代码的工具。任何你拥有的文本编辑器都可以。大多数的文本编辑器都能很好的支持Go语言的开发。其中最受欢迎的有VSCode(免费),GoLand(付费)和Vim(免费)。
- 一个cmd命令终端。Go语言的运行可以使用Linux或者Mac的终端命令行,或者Windows的PowerShell或cmd。
下载Go
点击一键下载安装
三、编写代码
编写一段hello,word代码。
- 打开命令行提示,然后cd到你的主目录
在Linux或者Mac中:
cd
在windows中:
cd %HOMEPATH%
- 为你的Go源码创建hello文件夹
例如,我们使用一下命令创建:
mkdir hello
cd hello
- 为你的代码开启依赖追踪
当你的代码中导入了其他模块的包时,你可以通过你代码自己的模块来管理这些依赖。这些模块由go.mod文件定义,go.md文件主要用于追踪那些提供包的模块。go.md文件与你的代码放在一起,被包含在你的源码库中。(个人理解:类似java的Maven、python的conda、js的npm一样的东西)
我们通过运行go mod init
命令,然后给一个你接下来要编写的模块的名字来创建go.mod文件,从而为代码开启依赖追踪功能。这个名字为模块的路径。
在实际的开发中,模块路径通常为你源码存放的地方。例如,如果模块路径为“github.com/mymodule”。如果你打算开源你的模块给别人用,模块路径必须是一个Go工具包能够下载你模块的位置。
如果想看更多关于模块命名方面的东西,可以看管理依赖
就本教程而言,就使用example/hello就行了。
$ go mod init example/hellogo: creating new go.mod: module example/hello
- 在你的文本编辑器中,创建一个hello.go的文件来编写代码
- 粘贴和保存一下代码在你的文件中
package mainimport "fmt"func main() {fmt.Println("Hello, World!")
}
在本代码中,你进行了以下操作:
- 声明了main包(包是一种对函数进行分组的方式,同时它由一个文件夹下的所有文件组成)
- 导入了一个常用的fmt包,这个包包含了格式化文本的一些函数,如打印字符到控制台。这个包是一个你下载Go之后就拥有的标准包之一。
- 实现了main函数来打印信息到控制台。当你运行这个包的时候,main函数会默认执行。
- 运行你的代码来观察结果
$ go run .
Hello, World!
go run命令是许多go语言完成任务的命令之一。使用一下命令可以获得命令列表:go help
四、访问外部包的代码
当你需要实现某些他人可能已经实现了的功能时,你可以去寻找那些你可以用的代码中的函数的包。
1.使用外部模块的打印信息会更有趣一点。(这里应该是作者想搞个外部的print函数做样例了)
- 访问pkg.go.dev然后搜索“quote”包。
- 在搜索结果中找到和点击 rsc.io/quote包(如果你看到了rsc.io/quote/v3,忽略它)
- 在文档中通过索引,找到可以调用的函数列表。你将会在之后用到它们。
- 在文章的顶部,请注意quote 包被包含在rsc.io/quote模块内。
你可以使用网站:pkg.go.dev去找那些你想用在你代码中的公共模块的包。像rsc.io/quote 等包都被发布在模块中,从而使得其他人也可以调用它。模块是通过时间来提供新版本的,你可以通过更新你的代码来提升版本。
2.在你的Go代码中引入 rsc.io/quote包,并且添加函数调用
package mainimport "fmt"import "rsc.io/quote"func main() {fmt.Println(quote.Go())
}
3.添加新的模块需求和总结(类似于python的requirements.txt文件吧)
Go将会把quoto模块作为依赖添加,以及将go.sum文件作为验证模块。更多信息可以查看验证模块
go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2
注意:如果出现连不上,下不下来的情况,十有八九就是被墙了,直接换源。
go env -w GOPROXY=https://goproxy.io,direct
4.运行你的代码来观察你调用的函数所打印的信息
go run .
Don't communicate by sharing memory, share memory by communicating.
这儿你的代码调用了Go的函数,打印了关于通信的巧妙信息。(原文就是这么写的,emmm,,可能是啥子俗语吧)
当你运行go mod tidy,他会定位和下载你所导入的rsc.io/quote模块。默认情况他会下载最后的版本–v1.5.2
五、更多
通过这篇快速介绍,你了解到了Go语言的下载,学到了一些基础知识。想要通过其他教程来写更多的代码,请查看创建Go模块。