Go语言简介

本文不含原创,只是知识的搬运工。

Go语言也称为 Golang,起源于 2007 年,并在 2009 年正式对外发布,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。

Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。

Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。

Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用Go语言开发项目。

Go语言有时候被描述为“C 类似语言”,或者是“21 世纪的C语言”。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。

因为Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)的概念来实现多态性。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说Go语言是一门混合型的语言。

此外,很多重要的开源项目都是使用Go语言开发的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。

1. Go是编译型语言

Go使用编译器来编译代码。编译器将源代码编译成二进制(或字节码)格式;在编译代码时,编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件。要创建并运行Go程序,程序员必须执行如下步骤。

  1. 使用文本编辑器创建Go程序;
  2. 保存文件;
  3. 编译程序;
  4. 运行编译得到的可执行文件。
    这不同于 Python、Ruby 和 JavaScript 等语言,它们不包含编译步骤。Go自带了编译器,因此无须单独安装编译器。

2. 为什么要学习Go语言

如果你要创建系统程序,或者基于网络的程序,Go语言是很不错的选择。作为一种相对较新的语言,它是由经验丰富且受人尊敬的计算机科学家设计的,旨在应对创建大型并发网络程序面临的挑战。

在Go语言出现之前,开发者们总是面临非常艰难的抉择,究竟是使用执行速度快但是编译速度并不理想的语言(如:C++),还是使用编译速度较快但执行效率不佳的语言(如:.NET、Java),或者说开发难度较低但执行速度一般的动态语言呢?显然,Go语言在这3个条件之间做到了最佳的平衡:快速编译,高效执行,易于开发。

Go语言支持交叉编译,比如说你可以在运行 Linux 系统的计算机上开发可以在 Windows 上运行的应用程序。这是第一门完全支持 UTF-8 的编程语言,这不仅体现在它可以处理使用 UTF-8 编码的字符串,就连它的源码文件格式都是使用的UTF-8编码。Go语言做到了真正的国际化!

3. Go语言吉祥物

Go语言有一个吉祥物,在会议、文档页面和博文中,大多会包含下图所示的Go Gopher,这是才华横溢的插画家Renee French设计的,她也是 Go设计者之一Rob Pike的妻子。

Go语言吉祥物

全文摘自

[1] Go语言简介:http://c.biancheng.net/view/1.html
[2] Go语言的特性有哪些?:http://c.biancheng.net/view/3990.html