golang简介

  • By v2ray节点

  • 2024-04-25 00:17:53

  • 评论

“Go 是一种开源编程语言,可以轻松构建简单、可靠、 和高效的软件。”(来自 Go 网站 golang.org)

Go 是由 Google 的 Robert Gries Emer、Rob Pike 和 Ken Thomps 于 2007 年 9 月构想出来的,并于 2009 年 11 月宣布。该语言时代及其配套工具的目标是具有表现力 ,高效的编译和执行,并有效地编写可靠和健壮的程序。

Go 与 C 有相似之处,并且与 C 一样,是专业程序员的工具,可以用最少的手段达到最大的效果。 但它不仅仅是 C 的更新版本。它借鉴并改编了许多其他语言时代的优秀思想,同时避免了导致代码复杂性和不可靠的功能。 它的并发设施是新的和高效的,它的数据抽象和面向对象编程方法非常灵活。 它具有自动内存管理或垃圾收集功能。

Go 特别适合构建网络服务器等基础设施以及程序员的工具和系统,但它确实是一种通用语言,可以在多种领域中使用 例如图形、移动应用程序和机器学习。 它作为非类型化脚本语言的替代品而变得流行,因为它平衡了表达性和安全性:Go程序通常比在动态语言中编写的程序运行得更快,并且由于未预料到的类型错误而导致更严重的崩溃。

Go 是一个开源项目,因此任何人都可以免费获得其编译器、库和工具的源代码。 该项目的贡献来自活跃的全球社区。 Go 可以在类 Unix 系统(Linux、Free eBSD、OpenBSD、Mac OS X)以及 Plan9 和 Micros oft Windows 上运行。 在这些环境之一中编写的程序通常无需在其他环境中进行修改即可运行。

本站旨在帮助您立即开始有效地使用 Go,并用好它,充分利用 Go 的语言特性和标准库来编写清晰、惯用且高效的程序。


Go的起源

就像生物物种一样,成功的语言时代会产生融合了祖先优点的后代。 有时,内在的力量会带来惊人的力量; 而且,偶尔会出现前所未有的全新功能。 通过研究这些影响,我们可以了解很多关于语言为什么是现在这个样子以及它适应什么环境的信息。

下图显示了早期编程语言对 Go 设计的最重要影响。

Go 有时被描述为“类似 C 的语言时代”,或“21 世纪的 C”。从 C 开始,Go 引入了它的表达式语法、控制流语句 、基本数据类型、按值调用参数传递、指针,最重要的是,C 语言重点关注可编译为高效机器代码并与当前操作系统的抽象自然协作的程序。

但 Go 的家谱中还有其他祖先。 其中一个主要影响来自尼克·劳斯·维尔斯 (Nik Laus Wirth) 的语言,首先是帕斯卡 (Pascal)。 Modula-2 激发了封装概念。 Oberon 消除了模块接口文件和模块实现文件之间的区别。 Obero n-2 影响包、导入和声明的语法,而 Obj e ct Obero n 提供方法声明的语法。

Go 的祖先中的另一个血统,也是使 Go 在最近的编程语言时代中脱颖而出的一个血统,是贝尔实验室开发的一系列鲜为人知的研究语言时代,所有这些都受到通信概念的启发。 Tony Ho are 在 1978 年发表的关于并发基础的开创性论文中提出了顺序处理 (CSP)。 在CSP中,程序是没有共享状态的进程的并行文件组合; 进程使用通道进行通信和同步。 但是 Hoare 的 CSP 是一种用于描述并发基本概念的马尔语言时代,而不是一种用于编写可执行可执行程序的编程语言时代。

Rob Pike 和其他人开始尝试将 CSP 实现作为实际语言。 第一个被称为 d Squeak(“与鼠标交流的语言”),它提供了处理鼠标和键盘事件的语言,并具有静态创建的通道。 紧随其后的是 Newsque ak,它提供了类似 C 语言的语句和表达式语法以及类似 Pas call 的类型表示法。 它是一种带有垃圾收集的纯函数式语言,同样旨在管理键盘、鼠标和窗口事件。 Channel 成为第一个 t 级值,动态创建并可存储在变量中。

Plan9 操作系统以一种名为 Alef 的语言来承载这些思想。 Alef 试图使 Newsque 成为一种可行的系统编程语言,但它省略了服装年龄收集,使得并发变得非常痛苦。

她在Go中的其他构造显示了非祖先基因的影响。 例如,iota 松散地源自 APL,而具有嵌套函数的词汇范围则源自 Scheme(以及此后的大多数语言)。 我们在这里也发现了新的突变。 Go 的创新切片提供了具有高效随机访问的动态数组,但也允许复杂的共享安排,让人想起链接列表。 延期声明对于 Go 来说是新的。

v2ray节点购买