Golang 简介
Go(又称Golang) 是一种程序化和静态类型的编程语言,其语法类似于 C语言 。它提供了丰富的标准库、垃圾收集和动态类型能力。
这种语言还具有键值图、长度数组功能,是高级别的内置类型。Go是 最强大、性能最强、可扩展的编程语言_ ,用于创建网络应用程序、网络API、微服务和其他分布式服务。它是美国发展最快、收入最高的编程语言之一。
Golang的演变:
Golang是由 Robert Griesemer、Rob Pike和Ken Thompson 于2007年在Google设计。它于2009年11月作为一种开源的编程语言推出。设计Golang的主要目的是为了解决其他语言的问题,保留其有用的功能。在2012年3月,它的 1.0版本 被发布。最新的版本是2018年发布的 1. 11.1 。
为什么是Golang?
设计Golang的主要目的是为了消除现有语言的问题。所以我们从Python、Java、C/C++语言所面临的问题入手:
- Python – “容易使用,但速度慢” :Python很容易,但速度很慢,因为它是一种解释型语言,使得代码很慢。
- Java – “复杂的类型系统” : Java有一个复杂的类型系统,因为它有额外的功能,这使得它更加复杂和缓慢。
- C/C++ – “复杂的类型系统以及缓慢的编译时间” :C/C++是在计算机没有那么多空间的情况下设计的,所以开发者决定通过使用最小的空间来优化编译器,这导致了编译器的缓慢。
- 另外,所有这些语言都是在多线程应用很少的时候设计的,所以对高度可扩展的、并发的和并行的应用没有什么效果。
Golang的特点:
- 强类型和静态类型语言: Go是强类型和静态类型语言。强类型意味着一旦你使用某种数据类型创建了某个变量,那么在整个应用程序中它将保持这种类型。静态意味着所有的变量都必须在编译时定义。
- 优秀的社区: Golang有一个优秀的问题跟踪和解决方案的社区。
- 快速编译: Golang只包括那些在代码中直接导入的包。
- 垃圾收集: Go的自动垃圾收集非常快。
- 内置的并发性: Go有内置的并发性功能。使用Go例程和通道,你可以非常容易和有效地处理并发问题。
开始使用Golang编程
在Golang中编程: 由于Golang在语法上与其他广泛使用的语言非常相似,所以在Golang中编码和学习更容易。程序可以在任何一个广泛使用的文本编辑器中编写,如 Notepad++ , gedit 等,或者在任何一个文本编辑器上。编写完程序后,将文件以 .go 或 .GO 为扩展名保存 。
有各种在线IDE,如 The Go Playground, repl.it 等,可用于运行Go程序而无需安装。要在个人电脑或笔记本电脑上安装Go,我们需要两个软件 文本编辑器,给你一个写源代码和编译器的平台。文本编辑器可以是OS Edit Command、Brief、vm或vi、notepad、notepad++等。
例子: 一个简单的程序来打印 Hello Geeks! .
package main
import "fmt"
func main() {
// prints Hello, Geeks!
fmt.Println("Hello, Geeks!")
}
输出:
Hello, Geeks!
围棋程序的语法解释:
- 第1行: 它包含了程序的 包main ,其中有程序的整体内容。它是运行程序的初始点,所以它是必须写的。
- 第 2行: 包含 import “fmt” ,它是一个预处理命令,告诉编译器要包括包中的文件。
- 第3行: main函数 ,它是程序执行的开始。
- 第 4行: fmt.Println() 是一个标准库函数,用于在屏幕上打印输出。
- 注释: 注释是用来解释代码的,其使用方式与Java或C或C++中类似。编译器会忽略注释条目,不执行它们。注释可以是单行或多行的。
- 单行注释:
语法:
// single line comment
-
多行注释:
语法:
/* multiline comment */
优点
- 快速: Go没有虚拟机,它可以直接编译为机器代码。除去Go的中间汇编,它的速度非常快。
- 易学: 在语法上有一点变化,因为它看起来与其他编程语言的语言几乎相似。
- 并发: 它允许多个进程同时有效运行。
- 开源: 它是免费的、开放的,社区总是在那里帮助你。
- 垃圾收集: 这是Go的一个关键特征。Go擅长于对内存分配进行大量的控制,并且在最新版本的垃圾收集器中大大减少了延迟时间。
- 内置的测试工具: Golang有内置的测试工具,使其更加丰富和容易调试。
缺点:
- 它没有对泛型的支持,即使有很多关于它的讨论。
- 与这种编程语言一起分发的包是相当有用的,但Go并不是传统意义上的面向对象。
- 缺少一些库,特别是UI工具包。