Golang 初学者教程 [免费课程] 🎉
Go 是什么?💡
为什么要开发 Go?它与其他编程语言有何不同?🧐
Go语言的特点
在编写简单应用程序的同时学习语法和概念👩💻
在本完整的 Golang 课程中,您将了解最年轻的编程语言之一,它在云工程领域越来越受欢迎。
您将学习开始使用 Go并在项目中使用它所需的一切。✅
Go 是什么?💡
Go 是一种编程语言,由 Google 于 2007 年开发,并于 2009 年开源。所以它是一种相当年轻的语言。
这门语言叫做 Go。不过,它也通常被称为 Golang。这是因为该网站最初是golang.org。
现在,每当你听到一种新的编程语言时,你可能首先会问的是:
- 为什么我们还需要另一种编程语言?🙄
- 它的目的是什么或者它与其他现有语言相比有何优势或不同之处?
因此,在深入研究语法之前,让我们先看看创建 Go 语言的动机是什么?
为什么要开发 Go?它与其他编程语言有何不同?🧐
基础设施发生了变化
嗯,部署应用程序的基础设施在过去几年中发生了很大变化:
- 多核处理器变得普遍
- 使用拥有数百或数千台服务器和多处理器的云基础设施来部署应用程序也变得非常普遍
因此,基础设施变得更加可扩展、动态,容量也更大。然而,大多数语言无法帮助编写能够利用这些基础设施改进的应用程序。因此,你的应用程序基本上只能按顺序一次执行一个任务。
但随着基础设施的改进,现在可以
编写能够并行执行任务、同时处理多项任务的应用程序。这样一来,应用程序运行速度更快,用户使用体验也更友好。🚀
多线程——同时做多件事
举个简单的例子,如果您正在使用 Google Drive,您可能正在上传或下载文件和文件夹,但您可以继续在 UI 中来回导航。因此,下载、上传和 UI 导航都是并行进行的。
因此,该应用程序允许您同时执行多项操作,而不会影响任何其他任务:
这就是多线程的概念。每个线程基本上都在处理一个任务,你可以让多个线程并行运行,这会让应用程序运行更快,但也可能引发一些问题。👀
挑战
例如,在 Google Docs 上,多个用户可以同时处理同一份文档。因此,当两个用户同时对同一份文档进行更改和添加内容时,应该能够顺利进行,而不会出现一个用户覆盖另一个用户所做的所有更改的情况。
另一个可能发生此类问题的例子是,当并行处理多个事务时,例如用于购买机票或预订酒店等的预订系统。假设两个用户同时尝试预订最后一张剩余的机票。当然,这应该以不会发生重复预订的方式运行。
这个概念被称为并发,需要由开发人员在代码中处理。因此,当多个任务并行运行并更新同一数据时,他们必须编写代码来防止任务之间发生任何冲突。
语言并发支持
许多语言确实具备实现此类应用程序的功能,然而代码可能会变得相当复杂,
处理和预防并发问题也相当困难。复杂性也意味着更高的人为错误风险,而这正是 Go 的主要目的和独特之处所在。
因此,Go 的设计正是出于这个目的,以便更轻松地编写利用新性能基础架构的多线程并发应用程序。
我们将在课程结束时使用goroutines更详细地了解这一点:
Go 的主要用例
因此,从逻辑上讲,Go 的主要用例或最佳用途是编写需要高性能的应用程序,这些应用程序将在现代规模化和分布式基础架构上运行,通常在云平台上有数百和数千台服务器。
Go 用于服务器端或应用程序的后端,这些应用程序的类型范围很广,从微服务、Web 应用程序到数据库服务。
事实上,许多云技术或在现代云环境中运行的技术实际上都是用 Go 编写的,例如 Docker🐳、Hashicorp Vault、Kubernetes、CockroachDB 等等。
Go语言的特点
编译型语言
Go 是一种编译型语言,它可以非常快速地编译成单个二进制文件。您可以以一致的方式在不同平台上部署和运行它,因此无论您使用哪种操作系统或环境,都可以使用同一个二进制文件在不同平台上使用。
将编程的简易性与效率和安全结合起来
在开发 Go 时,他们希望兼具 Python 等高级语言的语法简洁性,以及 C++ 等低级语言的速度和效率。
所以你会在 Go 中看到这些特质的结合。
为了简单起见,故意省略了语言特性💡目标是使代码随着时间的推移易于维护。
- 简单的语法使您的代码非常易于维护、易于阅读和扩展。
- Go 应用程序可以非常快速地构建,启动和运行时也非常快。
- Go 非常节省资源,这意味着它使用很少的资源或运行时需要更少的资源(如 CPU 和 RAM)。
考虑到简单、快速等诸多好处,Go 在编写用于 DevOps 和 SRE 任务的简单自动化应用程序和 CLI 应用程序方面也越来越受欢迎。
现在我们知道了创建 Go 的原因以及它与其他语言的区别👍,让我们直接开始学习 Go 的核心概念和语法。
在编写简单应用程序的同时学习语法和概念👩💻
在本教程中,我们将编写一个非常简单的订票应用程序来学习 Go 的基础知识。因此,您无需通过孤立的示例来学习 Go 的概念和语法,而是将在整个教程中构建一个实际的应用程序来学习它们。😎
但对于演示部分,让我们继续观看视频,以便您可以更轻松地跟进:🤓
▬▬▬▬▬▬ 课程概述 📚 ▬▬▬▬▬▬
💎 第 01 部分:Go 语言简介
- 什么是 Go?为什么选择 Go?
- 它与其他编程语言有何不同?
- Go 的特点和 Go 用例
💎 第 02 部分:本地设置
- 安装 Go 和编辑器
- 编写我们的第一个程序和 Go 文件的结构
💎 第 03 部分:Go 语法和概念
- Go 中的变量和常量
- 格式化输出 - printf
- Go 中的数据类型
- 获取用户输入
- 什么是指针?
- 数组和切片
- Go 中的循环
- 条件(if / else)和布尔数据类型
- 验证用户输入
- Switch 语句
- 用函数封装逻辑
- 使用 Go Packages 组织代码
- Go 中的作用域规则
- 地图
- 结构体
💎 第 04 部分:Go 中的并发
- Goroutines
希望您能在本初学者教程中学到很多东西!
喜欢、分享并关注我😍以获取更多内容:
文章来源:https://dev.to/techworld_with_nana/golang-tutorial-for-beginners-free-course-330