Golang 简介

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的主要目的是为了消除现有语言的问题。所以我们从PythonJava、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++中类似。编译器会忽略注释条目,不执行它们。注释可以是单行或多行的。
  1. 单行注释:

    语法:

// single line comment 
  1. 多行注释:

    语法:

/* multiline comment */

优点

  1. 快速: Go没有虚拟机,它可以直接编译为机器代码。除去Go的中间汇编,它的速度非常快。
  2. 易学: 在语法上有一点变化,因为它看起来与其他编程语言的语言几乎相似。
  3. 并发: 它允许多个进程同时有效运行。
  4. 开源: 它是免费的、开放的,社区总是在那里帮助你。
  5. 垃圾收集: 这是Go的一个关键特征。Go擅长于对内存分配进行大量的控制,并且在最新版本的垃圾收集器中大大减少了延迟时间。
  6. 内置的测试工具: Golang有内置的测试工具,使其更加丰富和容易调试。

缺点:

  • 它没有对泛型的支持,即使有很多关于它的讨论。
  • 与这种编程语言一起分发的包是相当有用的,但Go并不是传统意义上的面向对象。
  • 缺少一些库,特别是UI工具包。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程