0001、1000集GO语言Flag毒誓
唤醒手腕UP猪Pig目标花费1000集进行讲解Go语言视频学习教程(有趣的灵魂,适合小白,不适合巨佬),从2023年3月19日开始,将会一直每天更新,准备在2024年5月1日之前更新完1000集Golang课程,更新不完直播吃完一整只烤卤猪(80斤)全盛晚饭。
最新2023年GoLang视频课程:目标花费1000集进行讲解Go语言视频学习教程(更新中)注入灵魂般的有趣,适合小白,不适合巨佬
0002、Golang编程语言历史
什么是谷歌工程师 20 % 时间?
谷歌工程师 20 % 时间
工作方式,允许工程师拿出 20 % 的时间来研究自己喜欢的项目。
语音服务 Google Now、谷歌新闻 Google News、谷歌地图 Google Map 上的交通信息等,全都是 20 % 时间的产物。Go 语言最开始也是 20 % 时间的产物。
Go 语言 3 位创始人是谁?
Robert Griesemer(罗伯特 · 格利茨默) | Rob Pike(罗伯 · 派克) | Ken Thompson(肯 · 汤普森) |
---|
Robert Griesemer
:在开发 Go 之前是 Google V8、Chubby 和 HotSpot JVM 的主要贡献者。
Rob Pike
:曾是贝尔实验室(Bell Labs)的 Unix 团队,和 Plan 9 操作系统计划的成员。他与 Thompson 共事多年,并共创出广泛使用的 UTF-8 字元编码。
Ken Thompson
:主要是 B 语言、C 语言的作者、Unix 之父。1983 年图灵奖(Turing Award)和 1998 年美国国家技术奖(National Medal of Technology)得主。他和 Dennis Ritchie 是 Unix 的原创者。
为什么 Go 语言 叫做 Go 语言?
这是一封由 Rob Pike 在 2007 年 9 月 25 号,星期二,下午 3:12 回复给 Robert Griesemer、Ken Thompson 的有关编程语言讨论主题的邮件,邮件正文大意为:在开车回家的路上我得到了些灵感。给这门编程语言取名为 go,它很简短,易书写。工具类可以命名为:goc、 gol、goa。交互式的调试工具也可以直接命名为 go 。语言文件后缀名为 .go 等等。
这就是 Go 语言名字的来源,自此之后 Robert、Rob 和 Ken 三个人开始在 Google 内部进行了研发,一直到了 2009 年,Go 正式开源了,Go 项目团队将 2009 年 11 月 10 日,即该语言正式对外开源的日字作为其官方生日。源代码最初托管在 http://code.google.com 上,之后几年才逐步的迁移到 GitHub 上。
Go 语言 LOGO 是什么?
Go 语言的 logo 是 Rob Pike 的妻子 Renee French 设计的,她是一位才华横溢的插画家。
某梗 Golang Logo 灵感也来自于 《海贼王》
GO 语言 / C 语言 / Python 比较
Go 语言以其近 C 的执行性能和近解析型语言的开发效率,以及近乎于完美的编译速度,已经风靡全球。很多人将 Go 语言称为 21 世纪的 C 语言,因为 Go 不仅拥有 C 的简洁和性能,而且针对多处理器系统应用程序的编程进行了优化,很好的提供了 21 世纪互联网环境下服务端开发的各种实用特性。
0003、下载安装GO语言环境
谷歌公司 Golang 官方网站:https://go.dev/
.dev
域名主要是为开发者设计的,要求强制使用 HTTPS 来阻止广告恶意程序和 ISP 植入的跟踪代码。
特别注意:官方网站首次访问会比较慢,要耐心等一段时间等浏览器加载完毕。
中国地区 Golang 官网:https://golang.google.cn/
.CN
域名是中国国家顶级域名,是以 .cn
为后缀的域名,包括在 .CN
下直接注册的二级域名和在 .CN
二级域下注册的三级域名。
Java : JDK java develop kits
Python:python 解析器(cpython)
Golang 环境包下载(详细的安装教程 B 站有讲解)
下载链接:https://golang.google.cn/dl/
Go语言环境包目录结构
配置环境变量
补充 path 环境变量:%GOROOT%\bin
Windows操作系统中的PATH环境变量(Path Environment Variable)是一个非常重要的系统环境变量,在系统中起着非常重要的作用。
path 环境变量作用
查找可执行文件
: PATH环境变量指定了一组目录的路径,操作系统会在这些路径中查找可执行文件(例如.exe、.bat、.cmd等),因此,当您在命令提示符或运行对话框中输入一个命令时,操作系统会按照PATH中的顺序搜索这些目录,以找到并执行相应的可执行文件。这使得您可以在任何目录下运行系统中已安装的可执行文件,而不必提供完整的路径。
便于运行脚本和命令
: 如果您编写了自定义的批处理文件(.bat或.cmd)或脚本文件,可以将这些文件所在的目录添加到PATH中,这样您可以从任何位置运行它们,而不必在命令行中输入完整路径。
简化开发环境配置
: 对于开发人员来说,PATH环境变量对于配置开发工具和编程环境非常重要。将编程语言的解释器、编译器、开发工具和相关的库文件所在的目录添加到PATH中,可以使开发过程更加顺利,无需每次都手动指定路径。
系统资源管理
: 某些系统和应用程序需要访问特定的工具或资源文件,这些文件可能位于不同的目录中。通过使用PATH环境变量,可以简化对这些资源的管理和访问。
注意:编辑PATH环境变量时要小心,不要删除现有的重要路径,以免影响系统或应用程序的正常运行。
0004、编写HelloWorld程序
合格的程序员脱发皆由 Helloworld 开始 - - - 唤醒手腕
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
在Go语言中,go run
和go build
是两个常用的命令,它们用于不同的目的,并且在开发过程中有不同的用途。以下是它们的主要区别:
go run
进行对你写的程序代码进行编译操作,在编译后立即执行程序,生成一个临时文件,并没有可执行文件生成。
go run
用于直接运行Go源代码文件,而不需要显式地生成可执行文件。- 当您使用
go run
命令时,它会编译您的代码并立即执行生成的可执行文件,然后输出程序的标准输出(如果有的话)。 - 这在开发和测试阶段非常方便,因为它允许您快速查看和调试代码的输出,而无需手动编译并运行可执行文件。
示例用法
go run main.go
go build
go build
用于编译Go源代码文件,并生成可执行文件,该可执行文件可以在需要时运行。- 当您使用
go build
命令时,它会将Go源代码编译成一个可执行文件(默认情况下与源代码文件名相同),该可执行文件位于当前目录。 - 这适用于将Go应用程序部署到生产环境或与其他工具集成,因为它生成了一个独立的可执行文件,您可以多次运行它而无需重新编译。
示例用法
go build -o myapp main.go
总之,go run
主要用于快速开发和测试,而go build
用于生成可执行文件,以便将Go应用程序部署到不同的环境中。在实际开发中,这两个命令通常会结合使用,先使用go run
来验证代码,然后使用go build
生成可执行文件以进行部署。
注意:使用
go build
生成了可执行文件,那么不论当前的环境有没有 go 开发语言环境,都可以执行该可执行文件。
0005、安装Goland开发者工具
JetBrains 公司并没有一个名为 “Goland” 的产品。然而,我认为你可能在提到 “GoLand”,这是 JetBrains 为 Go 编程语言开发的一款集成开发环境(IDE)。
GoLand 是一个专门为 Go 语言开发者设计的集成开发环境,它提供了一系列功能和工具,旨在提高 Go 语言开发的效率和质量。
安装 go 开发者工具
安装 go 开发者工具:goland vscode(微软)goland 下载官网:https://www.jetbrains.com
go env
go env
命令用于打印查看Go开发包的环境配置信息
go env
Go 环境配置信息
GOBIN 编译器和链接器的安装目录,存放可执行文件的目录的绝对路径。
GOROOT Golang 安装目录。
GOPATH Golang 工作目录。
GOROOT
和 GOPATH
是与 Go 编程语言相关的两个重要环境变量。它们用于配置和管理 Go 开发环境。
GOROOT 环境变量
GOROOT
是指定 Go 语言安装目录的环境变量。它表示 Go 编译器和标准库的安装路径。- 在你安装 Go 语言时,你需要指定一个目录作为 Go 的根目录,这个目录通常包含了 Go 的可执行文件、标准库和其他必要文件。
- 通常情况下,Go 会自动设置
GOROOT
环境变量,但你也可以手动设置它,以确保你的开发环境使用正确的 Go 安装目录。
GOPATH 环境变量
GOPATH
是 Go 语言工作区的根目录。它用于存储你的 Go 项目和相关的库。- 当你使用
go get
命令来下载和安装第三方库时,这些库将被存储在GOPATH
下的特定目录结构中。 GOPATH
中通常包含三个主要子目录:src
:用于存放你的 Go 项目源代码。pkg
:用于存放编译后的包对象文件。bin
:用于存放可执行文件(例如,通过go install
构建的可执行文件)。
需要注意的是,Go 1.11 版本引入了 Go Modules,这是一种更现代的依赖管理机制,允许开发者在不依赖于 GOPATH
的情况下管理项目依赖。在使用 Go Modules 的项目中,你不再需要设置 GOPATH
,而是可以在项目目录中使用 go.mod
和 go.sum
文件来管理依赖。
总之,GOROOT
和 GOPATH
是 Go 开发环境中的两个重要概念,它们分别表示 Go 安装目录和工作区的根目录。但随着 Go 语言的发展,Go Modules 已经成为更常见和推荐的依赖管理方式,因此在新的项目中,你可能不需要设置 GOPATH
。
0006、安装vscode开发者工具
Vscode 官方网站:https://code.visualstudio.com/
上节课 Goland 开发者工具(x)
go: go.mod file not found in current directory or any parent directory; see ‘go help modules’
GO111MODULE 是 Go 1.11 引入的新版模块管理方式。GO111MODULE 环境变量用于开启或关闭 Go 语言中的模块支持,它有 off、on、auto 三个可选值,默认为 auto。
-
GO111MODULE=off
无模块支持,go 会从 $GOPATH 文件夹和 vendor 目录中寻找依赖项。 -
GO111MODULE=on
模块支持,go 忽略 $GOPATH 文件夹,只根据 go.mod 下载依赖。 -
GO111MODULE=auto
在 $GOPATH/src 外层且根目录有 go.mod 文件时,开启模块支持;否者无模块支持。
go: no module declaration in go.mod. To specify the module path:
go mod edit -module=example.com/mod