跳转到主要内容

标签(标签)

资源精选(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 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 Windows 10 机器上安装 Go 并通过命令行设置编程环境。

先决条件

 

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

第 1 步 - 打开和配置 PowerShell


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

PowerShell 是 Microsoft 提供的一个提供命令行 shell 界面的程序。管理任务通过运行 cmdlet(发音为 command-let)来执行,这些命令是 .NET 软件框架的专用类,可以执行操作。 PowerShell 于 2016 年 8 月开源,现在可跨平台使用,适用于 Windows 和 UNIX 系统(包括 Mac 和 Linux)。

要查找 Windows PowerShell,您可以右键单击屏幕左下角的“开始”菜单图标。弹出菜单时,单击搜索,然后在搜索栏中键入 PowerShell。当您看到选项时,右键单击桌面应用程序中的 Windows PowerShell。出于本教程的目的,请选择以管理员身份运行。当您收到一个对话框提示您是否要允许此应用程序对您的 PC 进行更改?单击是。

完成此操作后,您将看到一个基于文本的界面,其中包含如下所示的字符串:

Windows 10 PowerShell

通过键入以下命令退出系统文件夹:

cd ~


然后,您将位于主目录中,例如 PS C:\Users\sammy。

要继续安装过程,您必须首先通过 PowerShell 设置权限。默认情况下配置为以最安全的模式运行,您可以作为管理员设置几个级别的权限:

  • Restricted 是默认的执行策略。在这种模式下,您将无法运行脚本,并且 PowerShell 只能作为交互式 shell 工作。
  • AllSigned 将使您能够运行由受信任的发布者签名的所有脚本和配置文件,这意味着您可能会打开您的计算机,从而面临运行碰巧由受信任的发布者签名的恶意脚本的风险。
  • RemoteSigned 将允许您运行由受信任的发布者签名的从 Internet 下载的脚本和配置文件,如果这些受信任的脚本实际上是恶意的,则再次使您的计算机面临漏洞。
  • 一旦您确认您了解文件是从 Internet 下载的,Unrestricted 将运行从 Internet 下载的所有脚本和配置文件。在这种情况下,不需要数字签名,因此您可能会打开您的计算机,从而面临运行从 Internet 下载的未签名和潜在恶意脚本的风险。

在本教程中,您将使用 RemoteSigned 执行策略来设置当前用户的权限。这将允许 PowerShell 接受受信任的脚本,而不会像使用 Unrestricted 权限那样使权限变得广泛。在 PowerShell 中输入以下内容:

Set-ExecutionPolicy -Scope CurrentUser


然后 PowerShell 将提示您提供执行策略。输入以下内容以使用 RemoteSigned:

RemoteSigned


按 ENTER 后,系统会要求您确认对执行策略的更改。键入字母 y 以使更改生效。您可以通过询问机器上的当前权限来确认这是否有效:

Get-ExecutionPolicy -List


您应该会收到如下所示的输出:

Output
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       Undefined


这确认当前用户可以运行从 Internet 下载的受信任脚本。您现在可以继续下载设置 Go 编程环境所需的文件。

第 2 步 — 安装包管理器 Chocolatey


包管理器是一组用于自动化安装过程的软件工具。这包括软件的初始安装、升级和配置,以及根据需要删除软件。他们将软件安装保存在一个中央位置,并且可以以常用格式维护系统上的所有软件包。

Chocolatey 是一个为 Windows 构建的命令行包管理器,其工作方式与 Linux 上的 apt-get 类似。 Chocolatey 提供开源版本,可帮助您快速安装应用程序和工具。您将使用它来下载开发环境所需的内容。

在安装脚本之前,请阅读它以确认您对它对您的机器所做的更改感到满意。为此,请使用 .NET 脚本框架下载 Chocolatey 脚本并将其显示在终端窗口中。

首先创建一个名为 $script 的 WebClient 对象,该对象与 Internet Explorer 共享 Internet 连接设置:

$script = New-Object Net.WebClient


通过使用 | 管道化 $script 对象来查看可用选项。到 Get-Member 类:

$script | Get-Member


这将返回此 WebClient 对象的所有成员(属性和方法):

  . . .
[secondary_label Snippet of Output]
DownloadFileAsync         Method     void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
DownloadFileTaskAsync     Method     System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
DownloadString            Method     string DownloadString(string address), string DownloadString(uri address) #method we will use
DownloadStringAsync       Method     void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
DownloadStringTaskAsync   Method     System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy…
 . . .


查看输出,您可以识别用于在 PowerShell 窗口中显示脚本和签名的 DownloadString 方法。使用此方法检查脚本:

$script.DownloadString("https://chocolatey.org/install.ps1")


检查脚本后,通过在 PowerShell 中键入以下内容来安装 Chocolatey:

iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex


cmdlet iwr 或 Invoke-WebRequest 允许您从 Web 中提取数据。这会将脚本传递给 iex 或 Invoke-Expression cmdlet,后者将执行脚本的内容并运行 Chocolatey 包管理器的安装。

允许 PowerShell 安装 Chocolatey。完全安装后,您可以开始使用 choco 命令安装其他工具。

如果您以后需要随时升级 Chocolatey,请运行以下命令:

choco upgrade chocolatey


安装包管理器后,您可以安装 Go 编程环境所需的其余部分。

第 3 步 — 安装文本编辑器 Nano(可选)


在这一步中,您将安装 nano,这是一个使用命令行界面的文本编辑器。您可以使用 nano 直接在 PowerShell 中编写程序。这不是强制性步骤,因为您也可以使用带有图形用户界面的文本编辑器,例如记事本。本教程推荐使用 nano,因为它将帮助您习惯使用 PowerShell。

使用 Chocolatey 安装 nano:

choco install -y nano


-y 标志自动确认您要运行脚本而不提示确认。

安装 nano 后,您可以使用 nano 命令创建新的文本文件。您将在本教程后面使用它来编写您的第一个 Go 程序。

第 4 步 — 安装 Go


就像您在上一步中使用 nano 一样,您将使用 Chocolatey 安装 Go:

choco install -y golang


注意:因为 go 是一个很小的词,所以使用 golang 作为安装包的术语以及在互联网上搜索与 Go 相关的文章时已变得很普遍。 Golang 一词起源于 Go 的域,即 golang.org。

PowerShell 现在将安装 Go,并在该过程中在 PowerShell 中生成输出。安装完成后,您应该会看到以下输出:

Output
Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of golang was successful.
 Software installed as 'msi', install location is likely default.

Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

安装完成后,您现在将确认 Go 已安装。要查看更改,请以管理员身份关闭并重新打开 PowerShell,然后检查本地计算机上可用的 Go 版本:

go version


您将收到类似于以下内容的输出:

Output
go version go1.12.1 windows/amd643.7.0


安装 Go 后,您可以为开发项目设置工作区。

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


现在您已经安装了 Chocolatey、nano 和 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 repository 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 位置

发出以下命令以导航到 $HOME 目录:

cd $HOME


接下来,为您的 Go 工作区创建目录结构:

mkdir go/bin, go/src


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

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


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

由于您使用 Chocolatey 进行安装,因此应该已经设置了此环境变量。您可以使用以下命令验证这一点:

$env:GOPATH


您应该看到以下输出,其中您的用户名代替了 sammy:

Output
C:\Users\sammy\go


Go 编译和安装工具时,会将它们放在 $GOPATH/bin 目录中。为方便起见,通常将工作区的 bin 子目录添加到 $PATH。您可以使用 PowerShell 中的 setx 命令执行此操作:

setx PATH "$($env:path);$GOPATH\bin"
现在,这将允许您在系统上的任何位置运行通过 Go 工具编译或下载的任何程序。

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

setx PATH "$($env:path);$GOPATH\bin"


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

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


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

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

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

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

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

go get github.com/digitalocean/godo

注意:如果您没有安装 git,Windows 会打开一个对话框询问您是否要安装它。单击“是”继续并按照安装说明进行操作。

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

ls $env:GOPATH/src/github.com/digitalocean/godo


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

Output
    Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        4/10/2019   2:59 PM                util
-a----        4/10/2019   2:59 PM              9 .gitignore
-a----        4/10/2019   2:59 PM             69 .travis.yml
-a----        4/10/2019   2:59 PM           1592 account.go
-a----        4/10/2019   2:59 PM           1679 account_test.go
-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
.
.
.
-a----        4/10/2019   2:59 PM           5076 vpcs.go
-a----        4/10/2019   2:59 PM           4309 vpcs_test.go

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

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


现在您已经设置了 Go 工作区,创建一个简单的“Hello, World!”程序。这将确保您的工作区配置正确,并让您有机会更加熟悉 Go。因为您正在创建单个 Go 源文件,而不是实际项目,所以您不需要在工作区中执行此操作。

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

nano hello.go


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

hello.go

package main

import "fmt"

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

按 CTRL 和 X 键退出 nano。当提示保存文件时,按 Y,然后按 ENTER。

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

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

go run hello.go


您刚刚创建的 hello.go 程序应该会导致 PowerShell 产生以下输出:

Output
Hello, World!


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

结论


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

文章链接