(1) Go入门

11 篇文章 0 订阅
10 篇文章 0 订阅

简介

在此模块中,你将开始使用 Go。 你将了解有关 Go 的历史和此编程语言的主要功能。 然后将在工作站上安装并配置 Go。 接下来,你将探索另一种无需在工作站上安装任何内容即可使用 Go 的方法。 你还将了解 Go 要求如何组织代码,以在需要开发复杂应用程序时帮助防止问题。

在模块结束时,你将以 Go 创建第一个“Hello World!” 应用程序,然后将可以继续学习有关如何使用 Go 来构建应用程序的详细信息。

学习目标

在此模块中,你将:

  • 在本地工作站上安装并配置 Go。
  • 安装并配置 Visual Studio Code 和 Go 扩展。
  • 浏览 Go Playground。
  • 创建你的首个 Go 应用程序。

先决条件

  • 熟悉常规的编程基础知识
  • 至少熟悉一种编程语言
  • 熟悉从 Internet 下载和安装软件

什么是 Go?

Go 是 Google 开发的一种编程语言,于 2009 年由 Robert Griesemer、Rob Pike 和 Ken Thompson 作为开源项目发布。 从那时起,Go 就被用于开发其他众所周知的技术,如 Docker、Kubernetes、Terraform 等。 但 Go 也是一种通用语言。 该语言的目标是使程序员在编写可靠而强大的代码时表现力强、高效且有效。

根据 TIOBE 索引,Go 是 2009 和 2016 年的年度编程语言。 尽管 Go 在 2016 年达到了临界点,但它仍保持着很好的口碑。 自 2015 年以来,根据年度 Stack Overflow 开发人员调查,Go 还被评为最受欢迎的语言之一。

Go 与 C 有很多相似之处,它继承了 C 语法、控制流语句、基本数据类型、指针和其他元素的许多方面。 但是,Go 不仅仅是 C 的最新版本。它借鉴并改编了其他编程语言中的创意,同时删除了不必要的复杂功能。 例如,面向对象的编程范例的某些部分在 Go 中没有完全实现。 你将在接下来的一些模块中了解原因。

Go 在以下主题中非常惯用:源代码格式、禁止未使用的代码、不需要 IDE、相比框架更倾向于标准库以及提供并发编程和错误处理的其他方法等。

Go 在 Unix 系统(如 Linux 和 macOS)上运行,并且还支持 Windows。

Go 原则

若要了解 Go 中一些操作的原因,有必要了解这种编程语言背后的原则:

  • Go 致力于使事情变得简单,用更少的代码行执行更多操作。
  • 并发是首选,函数可作为轻量线程运行。
  • 编译和执行速度快,目标是与 C 一样快。
  • Go 要求强制转换是显式的,否则会引发编译错误。
  • 未使用的代码不是警告,而是错误,代码将不会编译。
  • 有一种官方格式设置,有助于保持项目之间的一致性。
  • Go 并不适用于框架,因为它更倾向于使用标准库。
  • Go 确保向后兼容性。
  • Go 许可证是完全开放源代码。

安装 Go

开始使用 Go 创建应用程序之前,需要设置开发环境。

如果不想在本地安装 Go,可以使用 Go Playground,此 Web 服务可在浏览器中运行以 Go 编写的应用程序。 如果想要快速轻松地运行代码示例,这是一个很好的选择。 但是,在生成需要更复杂的代码组织的应用程序时,建议设置本地环境。

在 Windows 上安装 Go

若要在 Windows 上安装 Go,请从 Go 下载页面下载 Go 安装程序。

步骤 1:下载 Go 安装程序

在 Go 下载页面的“精选下载”部分中,选择“Microsoft Windows”选项。

可能会显示一个窗口,提示你允许从 golang.org 下载文件。如果是这样,请选择“允许”。

步骤 2:运行 MSI Go 安装程序

在本地下载了 Go 安装程序后,就可以开始安装 Go。 为此,请双击 .msi 文件,然后按照说明进行操作。

默认情况下,.msi 文件在 C:\Go 安装 Go,路径 C:\Go\bin 现在应是 $PATH 环境变量的一部分。

步骤 3:确认是否已正确安装Go

配置了 Go 分发后,确认 Go 是否正常工作。 为此,请打开新的命令提示符或 PowerShell 窗口,并运行以下命令:

go version

在 macOS 上安装 Go

若要在 macOS 上安装 Go,可以使用 Homebrew,或从 Go 下载页面。 你将在此页面上找到这两种方法,但请仅选择一种。

使用 Homebrew 安装 Go

安装 Go 的最简单方法是使用 Homebrew

打开终端提示符,然后运行以下命令:

brew update
brew install go

Homebrew 在 /usr/local/go 安装 Go,路径 /usr/local/go/bin 现在应是 $PATH 环境变量的一部分。 你可能需要重新打开终端提示符以确认是否正确安装了 Go。

若要确认是否已安装 Go,请运行以下命令:

go version

使用 Go 安装程序安装 Go

或者,可以通过执行以下操作来安装最新版本的 Go:

步骤 1:下载 Go 安装程序

Go 下载页面的“精选下载”部分中,选择“Apple macOS”选项。

可能会显示一个窗口,提示你允许从 golang.org 下载文件。如果是这样,请选择“允许”。

步骤 2:运行 Go 安装程序

在本地下载 Go 安装程序后,就可以开始安装了。 双击 .pkg 文件,然后按照说明安装 Go。

默认情况下,.pkg 文件在 /usr/local/go 安装 Go,路径 /usr/local/go/bin 现在应是 $PATH 环境变量的一部分。

步骤 3:确认是否已正确安装 Go

安装完成后,打开新的终端提示符并运行以下命令:

go version

在 Linux 上安装 Go

若要在 Linux 上安装 Go,请从 Go 下载页面下载 Go 安装程序。 如果出于某种原因,你已经安装 Go 并想要安装最新版本,请在继续操作之前删除现有版本。

步骤 1:下载 Go 安装程序

Go 下载页面的“精选下载”部分中,选择“Linux”选项。

可能会显示一个窗口,提示你允许从 golang.org 下载文件。如果是这样,请选择“允许”。

备注:如果在阅读本指南时,1.15.4 不是最新版本,则可能需要更改命令中的版本号。

或者,可以通过在终端提示符下运行以下命令来下载安装程序:

wget https://golang.org/dl/go1.15.4.linux-amd64.tar.gz

步骤 2:提取 Go 安装程序

在本地下载 Go 安装程序后,可以开始在工作站上设置 Go。
/usr/local/go 提取安装程序,并以 root 身份或通过 sudo 运行以下命令:

tar -C /usr/local -xzf go1.15.4.linux-amd64.tar.gz

需要将路径 /usr/local/go/bin 添加到 $PATH 环境变量。 若要使 Go 在系统范围内可用,可以将以下命令添加到 $HOME/.profile 或 /etc/profile:

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

需要关闭并重新打开终端提示符,以更新 $PATH 环境变量。 或者,可以通过运行以下命令强制更新:

source $HOME/.profile

步骤 3:确认是否已正确安装 Go 配置 Go 分发后,请运行以下命令来确认 Go 正常工作:

go version

应显示在工作站上安装的 Go 版本的详细信息。

组织代码项目

继续之前,请务必仔细阅读此部分。

Go 在组织项目文件方面与其他编程语言不同。 首先,Go 在工作区的概念之下工作,其中,工作区就是应用程序源代码所在的位置。 在 Go 中,所有项目共享同一个工作区。 不过,从版本 1.11 开始,Go 开始更改此方法。 你还不必担心,因为我们将在下一个模块中介绍工作区。 现在,Go 工作区位于 $HOME/go,但如果需要,可以为所有项目设置其他位置。

若要定义其他工作区位置,请将值设置为 $GOPATH 环境变量。 开始创建更复杂的项目时,需要为环境变量设置一个值,以避免将来出现问题。

在 macOS 或 Linux 中,可以通过将以下命令添加到 ~/.profile 来配置工作区:

export GOPATH=$HOME/go

然后运行以下命令以更新环境变量:

source ~/.profile

在 Windows 中,创建一个文件夹(例如 C:\Projects\Go),你将在其中创建所有 Go 项目。 打开 PowerShell 提示符,然后运行以下命令:

[Environment]::SetEnvironmentVariable("GOPATH", "C:\Projects\Go", "User")

在 Go 中,可以通过打印 $GOPATH 环境变量的值来获取工作区位置,以供将来参考。 或者,可以通过运行以下命令获取与 Go 相关的环境变量:

go env

在 Go 工作区中,可以找到以下文件夹:

  • bin:包含应用程序中的可执行文件。
  • src:包括位于工作站中的所有应用程序源代码。
  • pkg:包含可用库的已编译版本。 编译器可以链接这些库,而无需重新编译它们。
    例如,工作站文件夹结构树的外观如下:
bin/
    hello                          
    coolapp                        
pkg/
    github.com/gorilla/
        mux.a 
src/
    github.com/golang/example/
        .git/                      
    hello/
        hello.go

我们将在下一个模块中返回到本主题,并且将讨论需要或想要在 $GOPATH 环境以外维护项目时要执行的操作。

此外,还可以通过访问官方文档站点如何编写 Go 代码深入了解本主题。

练习 - 浏览 Go Playground

我们在本模块前面提到过,如果还不想在本地工作站上安装 Go,可以使用 Go Playground,此网站可在沙盒环境中编译和运行 Go 代码。 在论坛中共享解决方案时,通常使用此工具与其他开发人员共享代码片段。

请注意,Go Playground 具有一些限制,这些限制可能会影响学习旅程。 例如:

  • 键盘输入不受支持。
  • 随机数是确定性的。
  • 时间为常量。 每次都会获得相同的值。

image.png

若要开始使用 Go Playground,请选择“运行”按钮。

可随时继续使用此站点进行学习,但强烈建议在本地安装 Go 并使用集成开发环境 (IDE) 来提高开发效率。

练习 - “Hello World”

步骤 1:为项目创建一个新文件夹和一个 Go 文件
创建名为“helloworld”的新目录,并在其中创建一个名为“main.go”的新文件。 打开“main.go”文件,然后键入以下代码:

package main

import "fmt"

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

保存文件。

步骤 2:执行程序
现在可以运行程序了。 在终端中运行以下命令:

go run main.go

应会看到以下输出:

Hello World!

“go run”命令执行两项任务。 首先,它编译应用,如果一切正常,则执行应用。 可以通过仅运行以下命令来生成可执行文件:

go build main.go

当前面的命令完成时,它会生成一个可执行应用,你不需要进一步处理即可随时运行该应用。 现在,项目应如下所示:

helloworld/                     
  main
  main.go

不带文件扩展名(如果在 Windows 上,则为 .exe)的文件名是可用于运行程序的可执行文件。 在开发时,将使用 go run 命令。 但在为应用程序生成二进制文件时,则使用 go build 命令,并将二进制可执行文件部署到适当的环境。

你刚刚以 Go 编写了什么?
现在,你已创建了第一个 Go 应用并确保其可以编译和运行,接下来请逐行检查刚刚编写的代码。

让我们从以下行开始:

package main

通过这种方式在 Go 中将要创建的应用程序定义为可执行程序(可以运行的文件)。 此“Hello, World!” 应用是主要包的一部分。 包是一组常用的源代码文件。 每个可执行应用都具有此第一行,即使项目或文件具有不同的名称。

我们将在下一个模块中深入探讨本主题,但现在,请注意,每个可执行程序都应该是主要包的一部分。

挑战:若要确认刚阅读的内容,请在第一行中更改包的名称,并尝试运行该程序。 发生了什么情况? 你是否看到“Hello World!” 输出或任何二进制可执行文件?

现在,让我们来讨论以下行:

import "fmt"

通过 import 语句可从其他包中的其他代码访问程序。 在本例中,fmt 为标准库包,记录在官方 Go 文档站点

你需要此 import 语句,因为你将在此程序的稍后部分使用此包中的函数将消息打印到屏幕上。 可以在程序中包含你想要或需要的任意数量的 import。 但是,Go 在这方面非常惯用。 如果要导入包,但不使用语句,则应用将不会编译。

挑战:若要确认刚阅读的内容,请包含另一个导入,如 math 或 io。 发生了什么情况?

让我们来讨论以下块:

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

func 语句是用于声明函数的保留字。 现在,让我们来讨论为什么此函数被称为 main。 main 函数是程序的起点。 因此,整个包中只能有一个 main 函数(在第一行中定义的那个)。 在此函数中,你调用了 fmt 包中的 Println 函数,并发送了你希望在屏幕上看到的文本消息。

还有更多关于函数的信息,我们将在下一个模块中介绍。

总结

本模块中的目标是指导你完成使用 Go 的初始步骤,设置一个工作环境以便用 Go 创建更多项目,按照 Go 标准快速编写程序。 通过创建典型的 Hello World! 程序,了解了如何编译和运行以 Go 编写的程序。

为了避免将来出现问题,请记住,Go 中的所有项目都共享计算机上的同一个工作区。 建议在 $GOPATH/src 目录中创建所有项目。 但是,有时可能需要在其他位置创建项目。 在接下来的模块中,我们将讨论如何将项目代码存储在其他位置。

最后,你了解了 go build 和 go run 命令之间的差异。 go build 命令编译程序,如果没有错误,它将生成可在不使用 Go 的情况下运行的二进制可执行文件。 通常使用此命令生成应用程序二进制文件,用于将应用程序部署到不同的环境。 go run 命令编译并执行应用程序,而不生成二进制文件。 在本地开发和测试应用程序时,将使用此命令。

下一节

(2) 了解如何使用包、变量和函数

文章来源: https://www.sdk.cn/details/5Oo4L8VEeLzEbVMrWv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值