Golang,也称为Go,是Google于2007年开发的一种开源编程语言。它被设计为一种快速、高效和现代的语言,用于构建可扩展和并发的软件应用程序。Go是一种静态类型语言,这意味着变量类型是在编译时确定的,并且它的语法简单易学。Go还具有对并发的内置支持,允许有效使用多个处理器并能够同时管理大量连接或任务。此外,Go还有一个垃圾收集器,可以自动管理内存分配和释放,从而更容易编写安全稳定的代码。总体而言,Go是一种多功能语言,适用于广泛的应用程序,包括 Web 开发、网络编程、系统管理等。

 

它叫go还是golang?

编程语言的正式名称是"Go"。然而,它通常也被称为"Golang",因为它的域名golang.org。因此,"Go"和"Golang"都可以用来指代该语言。

 

Go编程语言是如何诞生的?

Go(或Golang)是一种编程语言,旨在构建大规模,高性能的软件系统。它由Robert Griesemer,Rob Pike和Ken Thompson于2007年在Google创建,目标是提供一种易于学习,高效且适合现代计算机硬件的语言。

创建Go背后的动机是提供一种易于学习、高效且适合现代计算机硬件的现代编程语言。该团队还希望解决现有编程语言的一些缺点,例如编译时间慢和对并发性的支持不佳。

Go受到几种现有编程语言的影响,包括 C、C++、Java 和 Python。该团队旨在结合这些语言的最佳功能,并创建一种非常适合现代软件开发的新语言。

Go从一开始就是一个开源项目,它被设计成Google和更广泛的编程社区之间的协作努力。此后,该语言越来越受欢迎,并被许多公司和开发人员用于各种应用程序,包括 Web 开发、系统编程和网络编程。

 

为什么Go编程语言很重要?

Go,也称为Golang,是Google于2009年开发的一种开源编程语言。以下是Go很重要的一些原因:

简单性和生产力:Go的设计简单易懂,这使其成为初学者的理想语言。它具有简洁的语法,可以轻松快速读取和编写代码。这种简单性使开发人员在编码中更加高效。
并发:Go最重要的功能之一是其内置的并发支持,它允许开发人员编写并发运行的代码,只需很少的努力。Go的并发模型使编写快速且可扩展的程序变得容易。
性能:Go是一种编译语言,这意味着代码被编译成直接在硬件上运行的机器代码。这使得Go程序非常快速和高效。Go的垃圾收集系统也被设计为快速高效,这意味着它可以轻松处理大规模的应用程序。
开源:Go是一种开源编程语言,这意味着它是免费提供的,任何人都可以使用。对于想要构建开源软件或为现有项目做出贡献的开发人员来说,这使其成为一种有吸引力的语言。
社区:Go拥有一个庞大而活跃的开发人员社区,他们为其开发做出贡献并为其他开发人员提供支持。这个社区已经开发了一个丰富的工具和库生态系统,使使用Go构建复杂的应用程序变得容易。
云原生:Go旨在在现代云计算环境中很好地工作。它的简单性、并发性和性能使其非常适合构建可扩展的分布式系统。

总体而言,Go是现代软件开发的重要语言,因为它具有简单性、并发支持、性能、开源性质、社区和云原生功能。它特别适合构建高性能、可扩展的分布式系统。

 

Go编程语言的用途是什么?

Go通常用于开发 Web 应用程序、网络服务和系统级软件。Go在这些类型的应用程序中流行的一些原因是:

并发:Go内置了对并发的支持,可以轻松编写并发程序并利用现代多核处理器。
性能:Go是一种编译语言,可以生成快速高效的机器代码,这使得它非常适合构建高性能软件。
单纯:Go具有简单易学的语法,这使其成为构建需要多个开发人员之间协作的大型项目的理想选择。
可扩展性:Go被设计为可扩展的,这意味着它可以在不牺牲性能的情况下处理大量的流量和数据。

使用Go构建的一些流行软件示例包括 Docker、Kubernetes 和 Prometheus 监控系统。

 

Go编程语言的一些优点是:

单纯:Go具有简单简洁的语法,易于阅读和理解,非常适合初学者。
并发:Go内置了对并发的支持,允许对任务进行高效的并行处理。
速度:Go以其快速的编译速度和高效的运行时性能而闻名。
垃圾回收:Go具有自动垃圾回收功能,有助于管理内存使用情况并降低内存泄漏的风险。
跨平台支持:Go被设计为可移植的,其代码可以编译为在多个平台和架构上运行。
强类型:Go是一种静态类型语言,这意味着可以在开发过程中尽早捕获类型错误,使其更易于调试。
大型标准库:Go有一个大型标准库,为常见任务提供了许多有用的包,例如网络编程、加密和文件 I/O。
开源:Go是一种开源语言,这意味着它的代码是免费提供的,任何人都可以修改和分发。

 

Go编程语言的缺点是什么?

虽然Go(或Golang)有很多优点,但它也有一些缺点需要考虑:

缺少泛型:Go不支持泛型,这使得编写泛型数据结构和算法更具挑战性。这可能会导致代码重复,因为开发人员需要为他们要使用的每种数据类型编写特定的函数或数据结构。
不成熟的生态系统:尽管Go近年来越来越受欢迎,但与其他语言(如 Java、Python 或 JavaScript)相比,它的生态系统仍然相对不成熟。这可能会使为特定用例查找第三方库和工具更具挑战性。
陡峭的学习曲线:Go有一个相对简单的语法,但它确实需要一些低级编程概念的知识,如指针和内存管理。与其他一些编程语言相比,这可能会使初学者的学习更具挑战性。
有限的语言功能:Go被设计为一种简约的语言,这意味着它缺乏其他现代语言中的一些功能。例如,它没有对异常的内置支持,并且仅支持一组有限的数据类型。
垃圾回收开销:Go使用垃圾回收来管理内存,这在处理大量内存或高吞吐量应用程序时有时会导致性能开销。

总体而言,尽管存在这些限制,Go仍然是许多开发人员的热门选择,因为它的性能、简单性和对并发的支持。

 

Go编程语言的标准库

Go中的标准库是预先编写的函数、类型和包的集合,它们是核心Go编程语言的一部分。它包括广泛的功能,包括 I/O 操作、网络、文本处理、加密、编码和解码等等。

Go标准库的优势之一是它的一致性和质量。标准库中的所有包都设计为可以很好地协同工作,并遵循一组一致的命名和设计约定。这使得编写既可靠又可维护的代码变得容易。

标准库中常用软件包的示例包括:

FMT:提供格式化和打印输出到控制台或其他输出流的功能。
net/http:提供一组强大的工具来构建HTTP服务器和客户端。
OS:提供与操作系统交互的功能,包括文件 I/O 操作、环境变量和进程管理。
encoding/JSON:提供对 JSON 数据进行编码和解码的函数。
time:提供用于处理日期、时间和持续时间的函数。

除了这些包之外,标准库还包括许多其他包和函数,用于各种任务。因为标准库是Go语言本身的一部分,所以它始终可用,不需要任何外部依赖项,这使得编写高效可靠的代码变得容易。

 

Go编程语言在哪里效果最好?

Go编程语言旨在在各种不同的环境中很好地工作,包括:

网站开发:Go非常适合构建 Web 应用程序和 API,因为它的性能和并发支持。Go的标准库包括对 HTTP 服务器和客户端的内置支持,可以轻松创建可扩展的 Web 应用程序。
网络编程:Go的并发支持和对网络编程的内置支持使其成为构建网络应用程序(如服务器和客户端)的不错选择。
系统编程:Go的低级功能(如直接内存管理和系统级访问)使其非常适合构建操作系统、网络守护进程和设备驱动程序等系统级程序。
分布式系统:Go的并发性和性能能力使其成为构建分布式系统(如微服务、容器编排系统和云计算平台)的理想选择。
数据科学:Go拥有一个不断增长的数据科学库和工具生态系统,包括机器学习和数据分析。Go的性能和并发能力使其非常适合构建高性能数据处理系统。

总体而言,Go编程语言在高性能、并发性和可伸缩性很重要的情况下效果最佳,例如 Web 开发、网络编程、分布式系统和数据科学。

 

Golang vs Python - 详细的比较和相似之处

Go和 Python 都是流行的编程语言,但它们有不同的优点和缺点。以下是基于几个关键因素的Go和 Python 的比较:

性能:Go通常比 Python 快,特别是对于计算密集型任务。Go是一种编译语言,这意味着代码被编译成直接在硬件上运行的机器代码,而 Python 是由解释器执行的解释型语言。这种执行模型的差异使Go具有性能优势。
并发:Go内置了对并发的支持,使编写并发程序变得容易。Python也支持并发,但它不像Go那样内置。Go的并发支持使其成为构建高性能、可扩展和分布式系统的不错选择。
语法:Go有一个简单简洁的语法,易于学习,而 Python 有一个更复杂的语法和很大的灵活性。Python的语法更具表现力,允许开发人员编写易于阅读和理解的代码。
生态系统:Python 拥有庞大而成熟的库和工具生态系统,适用于各种用例,例如数据科学、机器学习和 Web 开发。Go的生态系统仍在增长,但有很多有用的库和工具用于 Web 开发、网络编程和系统编程。
学习曲线:Python 通常被认为比Go更容易学习,因为它的语法更灵活、代码易于阅读,并且提供了广泛的教程和学习资源。Go的简单性和定义明确的语法使其成为想要快速学习新语言的开发人员的不错选择。

总之,Go是构建高性能、可扩展和分布式系统的不错选择,而 Python 更适合快速应用程序开发和数据科学。两种语言之间的选择取决于项目的特定需求和开发团队的偏好。

 

Golang vs Java - 详细的比较和相似之处

Go和 Java 都是流行的编程语言,具有不同的优点和缺点。以下是基于几个关键因素对Go和 Java 的详细比较:

性能:Go通常比 Java 快,特别是对于计算密集型任务。Go是一种编译语言,这意味着代码被编译成直接在硬件上运行的机器代码,而 Java 是一种在 Java 虚拟机 (JVM) 上运行的编译和解释语言。Go的性能优势在于其更轻量级和更高效的运行时。
并发:Go和 Java 都内置了对并发的支持,这使得编写并发程序变得容易。然而,Go的并发模型比 Java 的更简单、更高效。Go的轻量级 goroutines 和通道使得以最小的开销编写并发程序变得容易。
语法:Go有一个简单简洁的语法,很容易学习,而 Java 有一个更复杂的语法,更冗长。Go的简单性和定义明确的语法使快速编写和读取代码变得更加容易。
生态系统:Java 拥有更大、更成熟的库和工具生态系统,适用于各种用例,例如 Web 开发、企业软件和 Android 应用程序开发。Go的生态系统仍在增长,但有很多有用的库和工具用于 Web 开发、网络编程和系统编程。
学习曲线:Java通常被认为比Go更难学习,因为它的语法更复杂,需要学习的概念范围更广。Go的简单性和定义明确的语法使其成为想要快速学习新语言的开发人员的不错选择。
面向对象编程:Go和 Java 都支持面向对象编程 (OOP),但 Java 比Go更强调 OOP。Java 具有比Go更复杂的类层次结构和类型系统,这使得它更适合大规模的企业软件开发。

综上所述,Go是构建高性能、可扩展和分布式系统的不错选择,而 Java 更适合大规模企业软件开发。这两种语言都有其优点和缺点,两者之间的选择取决于项目的特定需求和开发团队的偏好。

 

Golang vs C++ - 详细的比较和相似之处

Go和 C++ 都是流行的编程语言,但它们有不同的优点和缺点。以下是基于几个关键因素的Go和 C++ 的详细比较:

性能:C++通常比Go快,尤其是对于低级任务。C++是一种编译语言,可以生成非常高效的机器代码。Go也已编译,但它针对并发和垃圾回收进行了优化,这可能会导致性能开销。
并发:Go和 C++ 都支持并发,但Go的并发模型比 C++ 更简单、更高效。Go的轻量级 goroutines 和通道使得以最小的开销编写并发程序变得容易,而 C++ 的并发支持需要对线程进行更多的低级管理。
语法:Go具有比 C++ 更简单、更简洁的语法,可以更轻松地快速阅读和编写代码。C++具有更复杂的语法和更灵活的功能,这可以使其更强大,但也更难学习和使用。
内存管理:Go具有内置的垃圾回收功能,可简化内存管理并有助于防止内存泄漏。C++使程序员能够更好地控制内存管理,这可以更有效,但也更容易出错。
生态系统:C++拥有庞大而成熟的库和工具生态系统,适用于各种用例,例如游戏开发、高性能计算和系统编程。Go的生态系统仍在增长,但有很多有用的库和工具用于 Web 开发、网络编程和系统编程。
学习曲线:Go通常被认为比C++更容易学习,因为它的语法更简单,功能集更有限。C++由于其更复杂的语法和更灵活的功能,具有更陡峭的学习曲线。

综上所述,C++ 是低级系统编程、高性能计算和游戏开发的不错选择,而Go更适合构建高性能、可扩展和分布式系统。这两种语言都有其优点和缺点,两者之间的选择取决于项目的特定需求和开发团队的偏好。

 

使用Go编程语言的公司列表

许多公司已经采用Go作为各种应用程序的主要编程语言。以下是一些使用Go及其产品的公司的列表:

Google:Go由Google于2009年创建,它被大量用于Google构建基础设施和服务。Google 基于Go的产品的一些例子包括 Kubernetes、Docker 和 YouTube。
Uber:Uber使用Go来构建微服务和其他后端系统。他们的一些基于Go的产品包括Uber的调度系统,支付处理系统和欺诈检测系统。
Dropbox:Dropbox使用Go来构建和维护其后端服务。他们使用Go是因为其效率、简单性和易于部署。他们的一些基于Go的产品包括Dropbox的文件同步服务和API。
Dailymotion:Dailymotion是一个视频共享平台,它使用Go来构建和维护其后端系统。他们使用Go来实现其性能、可伸缩性和并发功能。
Twitch:Twitch是一个使用Go构建和维护其后端服务的直播平台。他们使用Go是因为其性能、简单性和易于部署。
SoundCloud:SoundCloud使用Go来构建和维护其后端服务。他们使用Go是为了提高其性能、并发性和简单性。他们的一些基于Go的产品包括SoundCloud的API和分析服务。
纽约时报:《纽约时报》使用Go来构建和维护其 Web 服务。他们使用Go是为了提高其性能、并发性和简单性。他们的一些基于Go的产品包括《纽约时报》的评论审核系统及其档案搜索系统。

这些只是使用Go及其产品的公司的几个例子。还有许多其他公司使用Go来构建高性能、可扩展和分布式系统。

 

软件是用Go编程语言开发的

Go已被用于开发广泛的软件应用程序,从 Web 应用程序到网络服务再到命令行工具。以下是一些在Go中开发的流行软件应用程序:

Docker:流行的容器化平台,最初是用Go编写的。Go的效率、简单性和易于部署使其成为构建 Docker 的理想选择。
Kubernetes:流行的容器编排平台 Kubernetes 也是用Go编写的。Go的并发支持和性能使其成为构建 Kubernetes 的理想选择。
Prometheus:Prometheus是一个针对云原生环境的监控和警报系统,它是用Go编写的。Go的性能、并发性和简单性使其成为构建 Prometheus 的理想选择。
Hugo:Hugo是一个用Go编写的静态站点生成器。Go的简单性和易于部署使其成为构建 HuGo的理想选择。
CockroachDB:CockroachDB是一个用Go编写的分布式 SQL 数据库。Go的并发支持和性能使其成为构建 CockroachDB 的理想选择。
InfluxDB:InfluxDB是一个用Go编写的时间序列数据库。Go的性能、并发性和简单性使其成为构建 InfluxDB 的理想选择。
Consul :Consul是一个用Go编写的分布式服务网格和配置系统。Go的并发支持和性能使其成为构建 Consul 的理想选择。

这些只是在Go中开发的软件应用程序的几个示例。Go的性能、简单性和并发性支持使其成为构建高性能、可扩展和分布式系统的热门选择。

© 本文著作权归作者所有。转载请联系授权,禁止商用。

🔗 系列文章

1. Go语言教程之边写边学:Go语言介绍

2. Go语言教程之边写边学:变量

3. Go语言教程之边写边学:常量

4. Go语言教程之边写边:数据类型定义

5. Go语言教程之边写边学:类型转换-如何在Go中将字符串转换为整数类型?

6. Go语言教程之边写边学:类型转换-如何在Go中将字符串转换为浮点类型?

7. Go语言教程之边写边学:类型转换-如何在Go中将字符串转换为布尔数据类型转换?

8. Go语言教程之边写边学:类型转换-如何在Go中将布尔类型转换为字符串?

9. Go语言教程之边写边学:类型转换-如何在 Go 中将浮点转换为字符串类型?

10. Go语言教程之边写边学:类型转换-integer到string转换的不同方式

11. Go语言教程之边写边学:类型转换-将Int数据类型转换为 Int16 Int32 Int64

12. Go语言教程之边写边学:类型转换-将float32转换为float64,将float64转换为float32

13. Go语言教程之边写边学:类型转换-将integer转换为float

14. Go语言教程之边写边学:运算符

15. Go语言教程之边写边学:If...Else...Else If条件语句

16. Go语言教程之边写边学:Switch…Case条件语句

17. Go语言教程之边写边学:For循环

18. Go语言教程之边写边学:函数

19. Go语言教程之边写边学:可变参数函数

20. Go语言教程之边写边学:延迟调用函数

21. Go语言教程之边写边学:panic和recover

22. Go语言教程之边写边学:数组array

23. Go语言教程之边写边学:切片slice

24. Go语言教程之边写边学:映射map

25. Go语言教程之边写边学:结构 struct

26. Go语言教程之边写边学:接口 interface

27. Go语言教程之边写边学:协程 Goroutine

28. Go语言教程之边写边学:通道 channel

29. Go语言教程之边写边学:并发 Concurrency

30. Go语言教程之边写边学:日志 logging

31. Go语言教程之边写边学:操作文件和文件夹,压缩和解压缩

32. Go语言教程之边写边学:读写不同的文件类型

33. Go语言教程之边写边学:正则表达式 Regex

34. Go语言教程之边写边学:golang中处理DNS记录

35. Go语言教程之边写边学:密码学 Cryptography

36. Go语言教程之边写边学:golang的一些陷阱

37. Go语言教程之边写边学:导入导出:如何从其他包或者子包中导入结构体

38. Go语言教程之边写边学:导入导出:用指针访问并修改其他包的变量

39. Go语言教程之边写边学:导入导出:如何导入包并声明包的别名

40. Go语言教程之边写边学:导入导出:如何实现来自不同包的接口?

41. Go语言教程之边写边学:导入导出:如何从另一个包调用函数?

42. Go语言教程之边写边学:导入导出:解引用来自另一个包的指针

43. Go语言教程之边写边学:常用的软件库:结构体和字段验证

44. Go语言教程之边写边学:常用的软件库:Golang中的动态JSON

45. Go语言教程之边写边学:常用的软件库:Golang统计包

46. Go语言教程之边写边学:常用的软件库:slice和map过滤器

47. Go语言教程之边写边学:常用的软件库:HTML解析器

48. Go语言教程之边写边学:常用的软件库:常用正则表达式包CommonRegex

49. Go语言教程之边写边学:常用的软件库:简单图像处理包

50. Go语言教程之边写边学:常用的软件库:图表包

51. Go语言教程之边写边学:常用的软件库:动态XML解析器

52. Go语言教程之边写边学:常用的软件库:时间工具包

53. Go语言教程之边写边学:web应用:如何创建照片库

54. Go语言教程之边写边学:web应用:获取Twitter趋势某个位置附近的热门主题标签

55. Go语言教程之边写边学:web应用:生成二维码的Web应用程序

56. Go语言教程之边写边学:web应用:读取和写入JSON数据的Web应用程序

57. Go语言教程之边写边学:Goroutines和Channels练习:启动多个Goroutine,每个goroutine都向一个频道添加值

58. Go语言教程之边写边学:Goroutines和Channels练习:从通道发送和接收值

59. Go语言教程之边写边学:Goroutines和Channels练习:将斐波那契数列读写到通道

60. Go语言教程之边写边学:Goroutines和Channels练习:Goroutines通道执行顺序

61. Go语言教程之边写边学:Goroutines和Channels练习:查找奇数和偶数

62. Go语言教程之边写边学:Goroutines和Channels练习:哲学家就餐问题

63. Go语言教程之边写边学:Goroutines和Channels练习:检查点同步问题

64. Go语言教程之边写边学:Goroutines和Channels练习:生产者消费者问题

65. Go语言教程之边写边学:Goroutines和Channels练习:睡眠理发师问题

66. Go语言教程之边写边学:Goroutines和Channels练习:吸烟者问题

67. Go语言教程之边写边学:Golang中的反射:Reflect 包的copy函数

68. Go语言教程之边写边学:Golang中的反射:Reflect包的DeepEqual函数

69. Go语言教程之边写边学:Golang中的反射:Reflect包的swapper函数

70. Go语言教程之边写边学:Golang中的反射:Reflect包的TypeOf函数

71. Go语言教程之边写边学:Golang中的反射:Reflect包的ValueOf函数

72. Go语言教程之边写边学:Golang中的反射:Reflect包的Field相关函数

73. Go语言教程之边写边学:Golang中的反射:Reflect包的Make相关函数

74. Go语言教程之边写边学:golang中创建结构体切片

75. Go语言教程之边写边学:golang中创建结构体字典

76. Go语言教程之边写边学:golang中捕获panic

77. Go语言教程之边写边学:检查结构体中是否存在某个字段

78. Go语言教程之边写边学:初始化包含结构体切片的结构体

79. Go语言教程之边写边学:使用空接口动态添加结构体成员

80. Go语言教程之边写边学:将结构字段转换为映射字符串

81. Go语言教程之边写边学:Golang中的字符串

82. Go语言教程之边写边学:Golang中的字符串:字符串操作

83. Go语言教程之边写边学:Golang中的字符串:字符串字符编码

84. Go语言教程之边写边学:Golang Web服务器示例

85. Go语言教程之边写边学:Go中的HTTP服务器

86. Go语言教程之边写边学:Go中的HTTP客户端

87. Go语言教程之边写边学:使用HTTP客户端在HTTP请求中设置标头

88. Go语言教程之边写边学:使用HTTP客户端从HTTP响应中读取标头

89. Go语言教程之边写边学:处理HTTP重定向

90. Go语言教程之边写边学:如何处理HTTP 错误

91. Go语言教程之边写边学:如何在HTTP响应中设置标头

92. Go语言教程之边写边学:如何读取HTTP响应中的标头

93. Go语言教程之边写边学:如何在HTTP请求中设置cookie

94. Go语言教程之边写边学:如何读取HTTP请求中的cookie

95. Go语言教程之边写边学:如何处理HTTP身份验证

96. Go语言教程之边写边学:如何在HTTP客户端处理HTTP超时

97. Go语言教程之边写边学:如何优雅地处理HTTP服务器关闭

98. Go语言教程之边写边学:如何处理HTTP客户端-服务器安全

99. Go语言教程之边写边学:如何处理HTTP服务器负载均衡

100. Go语言教程之边写边学:如何处理HTTP服务器缓存

101. Go语言教程之边写边学:如何处理HTTP客户端缓存

102. Go语言教程之边写边学:如何处理HTTP服务器健康检查

103. Go语言教程之边写边学:如何处理HTTP客户端请求压缩

104. Go语言教程之边写边学:如何处理HTTP服务器日志记录

105. Go语言教程之边写边学:如何创建HTTP/2服务器

106. Go语言教程之边写边学:如何向Prometheus发出服务器预警

107. Go语言教程之边写边学:标准库:Context包

108. Go语言教程之边写边学:基础练习:打印金字塔型星号

109. Go语言教程之边写边学:基础练习:检查一个数字是否是回文

110. Go语言教程之边写边学:基础练习:打印乘法表

111. Go语言教程之边写边学:基础练习:打印帕斯卡三角形

112. Go语言教程之边写边学:基础练习:如何创建多个goroutine,如何使用三个逻辑处理器

113. Go语言教程之边写边学:基础练习:如何提高 Golang 应用程序的性能?

114. Go语言教程之边写边学:基础练习:类型嵌入和方法覆盖的接口示例

115. Go语言教程之边写边学:基础练习:如何使用WaitGroup将main函数的执行延迟到所有goroutines完成后

116. Go语言教程之边写边学:基础练习:逐行读取文件到字符串

117. Go语言教程之边写边学:基础练习:并发最佳实践

118. Go语言教程之边写边学:基础练习:2023年要遵循的最佳实践

119. Go语言教程之边写边学:基础练习:如何获取带有本地时区的当前日期和时间

120. Go语言教程之边写边学:基础练习:获取今天是星期几,今天是今年的第几天,本周是今年的第几周?

121. Go语言教程之边写边学:基础练习:获取 EST、UTC 和 MST 中的当前日期和时间

122. Go语言教程之边写边学:基础练习:获取两个日期之间的小时、天、分钟和秒差 [未来和过去]

123. Go语言教程之边写边学:基础练习:将年、月、日、小时、分钟、秒、毫秒、微秒和纳秒添加到当前日期时间

124. Go语言教程之边写边学:基础练习:将年、月、日、小时、分钟、秒、毫秒、微秒和纳秒从当前日期时间减去

125. Go语言教程之边写边学:基础练习:以各种格式获取当前日期和时间

126. Go语言教程之边写边学:基础练习:从当前日期和时间获取年、月、日、小时、分钟和秒

127. Go语言教程之边写边学:基础练习:将特定的UTC日期时间转换为 PST、HST、MST 和 SGT

128. Go语言教程之边写边学:基础练习:使用carbon日期时间包

129. Go语言教程之边写边学:基础练习:切片排序、反转、搜索功能

130. Go语言教程之边写边学:基础练习:常用字符串函数(1)

131. Go语言教程之边写边学:基础练习:常用字符串函数(2)

132. Go语言教程之边写边学:基础练习:常用字符串函数(3)

133. Go语言教程之边写边学:基础练习:常用字符串函数(4)

134. Go语言教程之边写边学:基础练习:方法和对象

135. Go语言教程之边写边学:基础练习:接口的设计理念

136. Go语言教程之边写边学:数据结构与算法:线性搜索

137. Go语言教程之边写边学:数据结构与算法:二分搜索

138. Go语言教程之边写边学:数据结构与算法:插值搜索

139. Go语言教程之边写边学:数据结构与算法:冒泡排序

140. Go语言教程之边写边学:数据结构与算法:快速排序

141. Go语言教程之边写边学:数据结构与算法:选择排序

142. Go语言教程之边写边学:数据结构与算法:希尔排序

143. Go语言教程之边写边学:数据结构与算法:插入排序

144. Go语言教程之边写边学:数据结构与算法:梳排序

145. Go语言教程之边写边学:数据结构与算法:归并排序

146. Go语言教程之边写边学:数据结构与算法:基数排序

147. Go语言教程之边写边学:数据结构与算法:烧饼排序

148. Go语言教程之边写边学:数据结构与算法:二叉树

149. Go语言教程之边写边学:数据结构与算法:Rabin-Karp

150. Go语言教程之边写边学:数据结构与算法:链表 Linked List

151. Go语言教程之边写边学:数据结构与算法:LIFO堆栈和FIFO队列

152. Go语言教程之边写边学:数据结构与算法:BFPRT中位数的中位数

153. Go语言教程之边写边学:数据结构与算法:LCS最长公共子序列

154. Go语言教程之边写边学:数据结构与算法:Levenshtein Distance编辑距离

155. Go语言教程之边写边学:数据结构与算法:KMP算法 字符串匹配算法

156. Go语言教程之边写边学:数据结构与算法:Floyd–Warshall多源最短路径

157. Go语言教程之边写边学:数据结构与算法:汉诺塔Tower of Hanoi

158. Go语言教程之边写边学:数据结构与算法:哈夫曼编码(Huffman Coding)

159. Go语言教程之边写边学:数据结构与算法:绘制长方体

160. Go语言教程之边写边学:数据结构与算法:生成随机迷宫

161. Go语言教程之边写边学:数据结构与算法:生成数字折线矩阵

162. Go语言教程之边写边学:数据结构与算法:生成数字螺旋矩阵

163. Go语言教程之边写边学:数据结构与算法:生成自平衡二叉查找树 AVL tree

164. Go语言教程之边写边学:数据结构与算法:打印给定字符串的所有排列

165. Go语言教程之边写边学:数据结构与算法:LZW 数据无损压缩和解压缩

166. Go语言教程之边写边学:了解go中并发工作原理:了解goroutine

167. Go语言教程之边写边学:了解go中并发工作原理:将channel用作通信机制

168. Go语言教程之边写边学:了解go中并发工作原理:了解有缓冲channel

169. Go语言教程之边写边学:了解go中并发工作原理:挑战:利用并发方法更快地计算斐波纳契数

170. Go语言教程之边写边学:编写并测试程序 :概述网上银行项目

171. Go语言教程之边写边学:编写并测试程序 :开始编写测试

172. Go语言教程之边写边学:编写并测试程序 :编写银行核心程序包

173. Go语言教程之边写边学:编写并测试程序 :编写银行 API

174. Go语言教程之边写边学:编写并测试程序 :完成银行项目功能

175. Go语言教程之边写边学:了解如何在 Go 中处理错误

176. Go语言教程之边写边学:标准库:strings(1)

177. Go语言教程之边写边学:标准库:strings(2)

178. Go语言教程之边写边学:标准库:strings(3)

179. Go语言教程之边写边学:标准库:strings(4)

180. Go语言教程之边写边学:标准库:strings(5)

181. Go语言教程之边写边学:标准库:strings(6)