跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(75) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) 聊天机器人(10) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) ChatGPT(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) RAG(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) 智能体(4) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) 编程语言(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) kafka(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 大型语言模型(2) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

介绍


Go 是一种在谷歌受挫后诞生的编程语言。开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。

虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 macOS 机器上安装 Go 并通过命令行设置编程工作区。

先决条件


您将需要一台具有管理访问权限且连接到 Internet 的 macOS 计算机。

第 1 步 — 打开终端


我们将在命令行上完成大部分安装和设置,这是一种与您的计算机交互的非图形方式。也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。命令行,也称为 shell,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。

macOS 终端是一个可用于访问命令行界面的应用程序。与任何其他应用程序一样,您可以通过进入 Finder,导航到 Applications 文件夹,然后进入 Utilities 文件夹来找到它。从这里,像任何其他应用程序一样双击终端以将其打开。或者,您可以通过按住 CMD 和 SPACE 键来使用 Spotlight,通过在出现的框中键入终端来查找终端。

macOS Terminal

还有更多终端命令需要学习,可以让你做更强大的事情。文章“[An Introduction to the Linux Terminal] (https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal)”可以让您更好地了解 Linux 终端,它类似于 macOS 终端。

现在您已经打开了终端,您可以下载并安装 Xcode,这是安装 Go 所需的开发工具包。

第 2 步 — 安装 Xcode


Xcode 是一个集成开发环境 (IDE),由 macOS 的软件开发工具组成。您可以通过在终端窗口中键入以下内容来检查 Xcode 是否已安装:

xcode-select -p


以下输出表示 Xcode 已安装:

Output
/Library/Developer/CommandLineTools


如果您收到错误,请在您的网络浏览器中安装 [来自 App Store 的 Xcode] (https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ign-mpt=uo%3D2) 并接受默认选项。

安装 Xcode 后,返回终端窗口。接下来,您需要安装 Xcode 的单独命令行工具应用程序,您可以通过键入:

xcode-select --install


至此,Xcode 及其命令行工具应用程序已完全安装,我们准备安装包管理器 Homebrew。

第 3 步 — 安装和设置 Homebrew


虽然 macOS 终端具有 Linux 终端和其他 Unix 系统的许多功能,但它没有提供适应最佳实践的包管理器。包管理器是一组软件工具,用于自动化安装过程,包括初始软件安装、软件升级和配置,以及根据需要删除软件。他们将安装保存在一个中央位置,并且可以以常用格式维护系统上的所有软件包。 Homebrew 为 macOS 提供了一个免费的开源软件包管理系统,简化了 macOS 上的软件安装。

要安装 Homebrew,请在终端窗口中输入:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


Homebrew 是用 Ruby 制作的,因此它将修改您计算机的 Ruby 路径。 curl 命令从指定的 URL 中提取脚本。该脚本将解释它将做什么,然后暂停该过程以提示您确认。这为您提供了有关脚本将对您的系统执行的操作的大量反馈,并让您有机会验证该过程。

如果您需要输入密码,请注意您的击键不会显示在终端窗口中,但会被记录下来。输入密码后,只需按返回键。否则,当系统提示您确认安装时,按字母 y 表示“是”。

让我们看一下与 curl 命令相关的标志:

  • -f 或 --fail 标志告诉终端窗口在服务器错误时不提供 HTML 文档输出。
  • -s 或 --silent 标志使 curl 静音,因此它不显示进度表,并与 -S 或 --show-error 标志结合使用,它将确保 curl 在失败时显示错误消息。
  • 如果服务器报告请求的页面已移动到不同的位置, -L 或 --location 标志将告诉 curl 将请求重做到新位置。

安装过程完成后,我们将把 Homebrew 目录放在 PATH 环境变量的顶部。这将确保 Homebrew 安装将通过 macOS 可能自动选择的工具调用,这些工​​具可能与我们正在创建的开发环境背道而驰。

您应该使用 nano 命令使用命令行文本编辑器 nano 创建或打开 ~/.bash_profile 文件:

nano ~/.bash_profile


在终端窗口中打开文件后,编写以下内容:

export PATH=/usr/local/bin:$PATH


要保存更改,请按住 CTRL 键和字母 o,并在出现提示时按 RETURN 键。现在您可以通过按住 CTRL 键和字母 x 来退出 nano。

通过在终端中执行以下命令来激活这些更改:

source ~/.bash_profile


完成此操作后,您对 PATH 环境变量所做的更改将生效。

您可以通过键入以下内容来确保 Homebrew 已成功安装:

brew doctor


如果此时不需要更新,终端输出将显示:

Output
Your system is ready to brew.


否则,您可能会收到运行另一个命令(例如 brew update)的警告,以确保您的 Homebrew 安装是最新的。

Homebrew 准备好后,您可以安装 Go。

##Step 4 — 安装 Go

您可以使用 Homebrew 通过 brew search 命令搜索所有可用的软件包。出于本教程的目的,您将搜索与 Go 相关的包或模块:

brew search golang


注意:本教程不使用 brew search go,因为它返回的结果太多。因为 go 是一个很小的词,并且会匹配很多包,所以使用 golang 作为搜索词已经很普遍。这也是在互联网上搜索 Go 相关文章时的常见做法。 Golang 一词起源于 Go 的域,即 golang.org。

终端将输出您可以安装的列表:

Output
golang    golang-migrate


Go 将成为列表中的项目之一。继续安装它:

brew install golang


终端窗口将为您提供有关 Go 安装过程的反馈。安装完成可能需要几分钟时间。

要检查您安装的 Go 版本,请键入以下内容:

go version


这将输出当前安装的 Go 的特定版本,默认情况下它将是可用的最新、稳定的 Go 版本。

以后要更新 Go,您可以运行以下命令先更新 Homebrew,然后再更新 Go。您现在不必这样做,因为您刚刚安装了最新版本:

brew update
brew upgrade golang


brew update 将更新 Homebrew 本身的公式,确保您拥有要安装的软件包的最新信息。 brew upgrade golang 会将 golang 包更新到该包的最新版本。

确保您的 Go 版本是最新的是一种很好的做法。

在您的计算机上安装 Go 后,您现在可以为您的 Go 项目创建工作区。

第 5 步 — 创建您的 Go 工作区


现在您已经安装了 Xcode、Homebrew 和 Go,您可以继续创建您的编程工作区。

Go 工作区将在其根目录包含两个目录:

  • src:包含 Go 源文件的目录。源文件是您使用 Go 编程语言编写的文件。 Go 编译器使用源文件来创建可执行的二进制文件。
  • bin:包含由 Go 工具构建和安装的可执行文件的目录。可执行文件是在您的系统上运行并执行任务的二进制文件。这些通常是由您的源代码或其他下载的 Go 源代码编译的程序。

src 子目录可能包含多个版本控制存储库(例如 Git、Mercurial 和 Bazaar)。当您的程序导入第三方库时,您将看到 github.com 或 golang.org 等目录。如果您使用的是 github.com 之类的代码存储库,您还将把项目和源文件放在该目录下。这允许在您的项目中规范地导入代码。规范导入是引用完全限定包的导入,例如 github.com/digitalocean/godo。

以下是典型工作区的外观:

.
├── bin
│   ├── buffalo                                      # command executable
│   ├── dlv                                          # command executable
│   └── packr                                        # command executable
└── src
    └── github.com
        └── digitalocean
            └── godo
                ├── .git                            # Git reposistory metadata
                ├── account.go                      # package source
                ├── account_test.go                 # test source
                ├── ...
                ├── timestamp.go
                ├── timestamp_test.go
                └── util
                    ├── droplet.go
                    └── droplet_test.go

 

从 1.8 开始,Go 工作区的默认目录是用户的主目录,带有一个 go 子目录,或 $HOME/go。如果您使用的是早于 1.8 的 Go 版本,则最佳做法是仍然为您的工作区使用 $HOME/go 位置。

发出以下命令为 Go 工作区创建目录结构:

mkdir -p $HOME/go/{bin,src}


-p 选项告诉 mkdir 在目录中创建所有父级,即使它们当前不存在。使用 {bin,src} 为 mkdir 创建一组参数,并告诉它创建 bin 目录和 src 目录。

这将确保以下目录结构现在到位:

└── $HOME
    └── go
        ├── bin
        └── src


在 Go 1.8 之前,需要设置一个名为 $GOPATH 的本地环境变量。虽然不再明确要求这样做,但它仍然被认为是一种很好的做法,因为许多第三方工具仍然依赖于设置的这个变量。

您可以通过将 $GOPATH 添加到 ~/.bash_profile 来设置它。

首先,使用 nano 或您喜欢的文本编辑器打开 ~/.bash_profile:

nano ~/.bash_profile


通过将以下内容添加到文件中来设置您的 $GOPATH:

~/.bash_profile

export GOPATH=$HOME/go


Go 编译和安装工具时,会将它们放在 $GOPATH/bin 目录中。为方便起见,通常将工作区的 /bin 子目录添加到 ~/.bash_profile 中的 PATH 中:

~/.bash_profile

export PATH=$PATH:$GOPATH/bin


现在,您的 ~/.bash_profile 中应该有以下条目:

~/.bash_profile

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin


现在,这将允许您在系统上的任何位置运行通过 Go 工具编译或下载的任何程序。

要更新您的 shell,请发出以下命令以加载您刚刚创建的全局变量:

. ~/.bash_profile


您可以通过使用 echo 命令并检查输出来验证您的 $PATH 是否已更新:

echo $PATH


您应该会看到您的 $GOPATH/bin 将显示在您的主目录中。如果您以 sammy 身份登录,您会在路径中看到 /Users/sammy/go/bin。

Output
/Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin


现在您已经创建了工作空间的根目录并设置了 $GOPATH 环境变量,您将创建具有以下目录结构的未来项目。此示例假设您使用 github.com 作为存储库:

$GOPATH/src/github.com/username/project


如果您正在处理 https://github.com/digitalocean/godo 项目,您可以将其放在以下目录中:

$GOPATH/src/github.com/digitalocean/godo


以这种方式构建项目将使项目可以使用 go get 工具。它也将有助于以后的可读性。

您可以使用 go get 命令获取 godo 库来验证这一点:

go get github.com/digitalocean/godo


通过列出目录我们可以看到它成功下载了godo包:

ls -l $GOPATH/src/github.com/digitalocean/godo


您将收到与此类似的输出:

Output
-rw-r--r--  1 sammy  staff   2892 Apr  5 15:56 CHANGELOG.md
-rw-r--r--  1 sammy  staff   1851 Apr  5 15:56 CONTRIBUTING.md
.
.
.
-rw-r--r--  1 sammy  staff   4893 Apr  5 15:56 vpcs.go
-rw-r--r--  1 sammy  staff   4091 Apr  5 15:56 vpcs_test.go


在此步骤中,您创建了一个 Go 工作区并配置了必要的环境变量。在下一步中,您将使用一些代码测试工作区。

第 6 步 — 创建一个简单的程序


现在您已经设置好了 Go 工作区,是时候创建一个简单的“Hello, World!”了。程序。这将确保您的工作区正常工作,并让您有机会更加熟悉 Go。

因为您正在创建单个 Go 源文件,而不是实际项目,所以您不需要在工作区中执行此操作。

在您的主目录中,打开一个命令行文本编辑器,例如 nano,然后创建一个新文件:

nano hello.go


在终端中打开文本文件后,输入您的程序:

package main

import "fmt"

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

通过键入 control 和 x 键退出 nano,并在提示保存文件时按 y。

此代码将使用 fmt 包并使用 Hello, World! 调用 Println 函数!作为论据。这将导致短语 Hello, World!在程序运行时打印到终端。

退出 nano 并返回 shell 后,运行程序:

go run hello.go


您刚刚创建的 hello.go 程序将使终端产生以下输出:

Output
Hello, World!


在此步骤中,您使用了一个基本程序来验证您的 Go 工作区是否已正确配置。

结论


恭喜!至此,您在本地 macOS 机器上设置了 Go 编程工作区,可以开始编码项目了!

文章链接