唤醒手腕 2023年 B 站课程 Golang 语言详细教程笔记(更新中)
最佳答案 问答题库408位专家为你答疑解惑
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
:在开发 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 mainimport "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
0007、fmt.print打印函数
fmt 包实现了类似C语言 printf 和 scanf 的格式化 I/O。
go 内置包 - fmt 包:fmt.print
什么是格式化输出?简单说就是挖个坑,再拿东西去填(什么样的坑,就填什么东西)
Golang 占位符介绍
0008、Go语言变量命名规则
变量名的首字母是:下划线 _ 、字母
变量名的非首字母部分是:下划线 _ 、字母、数字
例如:
_a、b1、a_
注意:理论上汉字也可以作为变量名称,但是不推荐使用汉字作为变量名,原因是你懂的。
package mainimport "fmt"func main() {var 蔡徐坤 = "鸡你太美"fmt.Printf("%v", 蔡徐坤)
}
Go语言 25个关键字
包相关: import、 package
声明相关: var、 const、 type、 struct、 interface、 func、 chan、 map、 go
循环相关: for、 range
条件判断相关: if、 else、 switch、 select、 case
中断或返回: return、 goto(嵌套 for 循环 goto 大法)、 fallthrough、 break、default、 continue
延迟执行: defer
Go 语言保留字
常量: true、false、iota(自动递增数字的常量定义)、nil(例如:python None、java null、c++ NULL)
整型:int、 int8 占1个字节、 int16 占2个字节、 int32 占4个字节、 int64 占8个字节
无符号整型:uint、 uint8、 uint16、 uint32、 uint64、 uintptr
浮点型:float32、 float64、 complex64、 complex128
其他:bool、byte、 rune(unicode 字符问题)、string、 error
函数: make、len、cap、new、append、copy、close、delete、complex、real、imag、panic、 recover
int 类型大小为 8 字节 和计算机系统保持一致
int8 类型大小为 1 字节
int16 类型大小为 2 字节
int32 类型大小为 4 字节
int64 类型大小为 8 字节
package mainimport "fmt"
import "unsafe"func main() {var i1 int = 0var i2 int8 = 0var i3 int16 = 0var i4 int32 = 0var i5 int64 = 0fmt.Println(unsafe.Sizeof(i1))fmt.Println(unsafe.Sizeof(i2))fmt.Println(unsafe.Sizeof(i3))fmt.Println(unsafe.Sizeof(i4))fmt.Println(unsafe.Sizeof(i5))
}
注意:unsafe.Sizeof() 只返回数据类型的大小,不管引用数据的大小,单位为 Byte
unsafe 是什么?
unsafe 库让 golang 可以像 C 语言一样操作计算机内存,但这并不是 golang 推荐使用的,能不用尽量不用,就像它的名字所表达的一样,它绕过了 golang 的内存安全原则,是不安全的,容易使你的程序出现莫名其妙的问题,不利于程序的扩展与维护。
查看计算机是几位的?
cmd > systeminfo系统类型:x64-based PC
0009、算数运算符和关系运算符
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"唤醒手腕 2023年 B 站课程 Golang 语言详细教程笔记(更新中)":http://eshow365.cn/6-14562-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Python项目实战:多线程并行计算 + 多进程并行计算
- 下一篇: NeRF中的位置编码