介绍
去 是一种过程编程语言。它是在年开发的 2007 由谷歌的罗伯特·格里默、罗伯·派克和肯·汤普森(Ken Thompson)撰写,但于年推出 2009 作为一种开源编程语言。通过使用包来组装程序,以便有效地管理依赖关系。这种语言还支持采用类似于动态语言的模式的环境。例如,类型推断(y:=0是float类型变量y的有效声明)。
从 Go编程
有各种各样的在线IDE,比如围棋场、repl。它可以用来运行Go程序,而无需安装。
为了安装Go-in-own PC或笔记本电脑,我们需要以下两个软件:文本编辑器和编译器 文本编辑器: 文本编辑器为您提供 站台 你在哪里写你的源代码。以下是文本编辑器列表:
- Windows记事本
- 操作系统编辑命令
- 简明的
- ε
- 虚拟机还是虚拟机
- Emacs
- VS代码
查找Go编译器: Go发行版是二进制的,可用于 FreeBSD (第8版及以上版本), Linux、Mac OS X(雪豹及以上版本) ,以及带有 32位(386) 和 64位(amd64)x86 处理器架构。 有关安装的更多说明。请访问 用于安装GO分发
Note: Extension of source code file of go language must be .go
在Go中编写第一个程序:
去
package main import "fmt" func main() { // prints geeksforgeeks fmt.Println( "Hello, geeksforgeeks" ) } |
输出:
Hello, geeksforgeeks
Go程序的语法说明:
- 第1行: 它包含 包干管 节目的整体内容。它是运行程序的初始点,因此必须编写。
- 第2行: 它包含 导入“fmt” ,它是一个预处理器命令,告诉编译器包含包中的文件。
- 第3行: 主要功能 ,它是程序执行的开始。
- 第4行: fmt。Println() 是一个标准的库函数,用于在屏幕上打印输出内容。在这方面, fmt 软件包已传输用于显示输出的Println方法。
- 评论: 注释用于解释代码,其使用方式与 JAVA 或 C 或 C++ .编译器忽略注释条目,不执行它们。注释可以是单行,也可以是多行。
单行评论:
语法:
// single line comment
多行评论:
语法:
/* multiline comment */
下面是另一个例子:
去
package main import "fmt" func main() { fmt.Println( "1 + 1 =" , 1 + 1 ) } |
输出:
1 + 1 = 2
对上述计划的解释: 在上面的程序中,相同的包行、相同的导入行、相同的函数声明和使用相同的Println函数,正如我们在 第一围棋项目 .这次不是打印字符串 “你好,极客们” 我们打印字符串1+1=后跟表达式1+1的结果。这个表达式由三部分组成:数值文本1(int类型)、+运算符(表示加法)和另一个数值文本1。
为什么要使用这种“围棋语言”?
因为Go语言致力于将解释型、动态类型语言的编程简单性与静态类型、编译语言的效率和安全性结合起来。它还旨在实现现代化,支持网络化和多核计算。
除了围棋之外,其他语言中还有什么?
- Go试图减少单词两种含义的打字量。在整个设计过程中,开发人员试图减少混乱和复杂性。
- 没有转发声明和头文件;每件事都只声明一次。
- 通过使用 := 声明并初始化构造。
- 没有类型层次结构:类型只是 是 ,他们不必宣布他们的关系。
硬件限制
我们观察到,在过去十年中,硬件和处理配置的变化速度非常缓慢。2004年,P4的时钟速度为3.0GHz,而现在到了2018年,Macbook pro的时钟速度约为2.3Ghz到2.66Ghz。为了加快速度,我们使用了更多的处理器,但是使用更多的处理器,成本也会增加。正因为如此,我们使用有限的处理器,使用有限的处理器,我们有一种繁重的编程语言,它的线程占用了更多内存,降低了系统的性能。因此,为了克服这种问题,Golang的设计方式是使用Goroutine,而不是使用线程,Goroutine与线程类似,但占用的内存非常少。 比如线程消耗1MB,而Goroutine消耗2KB的内存,因此在同一时间,我们可以触发数以百万计的Goroutine。 因此,上面讨论的点使Gangang-Grand成为一种处理C++和java并发性的强大语言。
围棋语言的优缺点
优势:
- 灵活——简洁、简单、易读。
- 并发性——它允许多个进程同时有效地运行。
- 快速结果——它的编译时间非常快。
- 图书馆——它提供了丰富的标准图书馆。
- 垃圾收集——这是go的一个关键功能。Go在很大程度上控制了内存分配,并且在最新版本的垃圾收集器中大大减少了延迟。
- 它验证了接口和类型嵌入。
缺点:
- 它不支持泛型,即使有很多关于它的讨论。
- 使用这种编程语言分发的包非常有用,但Go在传统意义上并不是面向对象的。
- 缺少一些库,尤其是UI工具包。
用Go语言开发的一些流行应用程序
- Docker:一组用于部署linux容器的工具
- Openshift: Red Hat提供的云计算平台即服务。
- 库伯内特斯: 无缝自动化部署过程的未来
- Dropbox: 将一些关键组件从Python迁移到Go。
- Netflix: 这是他们服务器架构的两部分。
- XDB: 是由Xdata开发的开源时间序列数据库。
- 戈朗: 语言本身就是用围棋写的。
围棋语言的特点
- 语言设计: 语言的设计者有意识地有目的地保持语言的简单易懂。整个细节都在几页纸上,一些有趣的设计决策是通过 面向对象 语言支持。对此,该语言固执己见,并建议 惯用的 实现目标的方式。它喜欢构图而不是继承。用围棋语言, “少花钱多办事” 这是咒语。
- 包管理: Go融合了现代开发者的工作流程 开源项目 并在管理外部软件包的方式中包含了这一点。工具中直接提供支持,以获取外部软件包并在一组简单的命令中发布您自己的软件包。
- 强大的标准库: Go有强大的标准库,以包的形式分发。
- 静态类型: Go是静态类型语言。因此,在这个编译器中,不仅要成功地编译代码,还要确保类型转换和兼容性。由于这个特性,Go避免了我们在动态类型语言中面临的所有问题。
- 测试支持: Go本身就为我们提供了单元测试功能,即一种简单的机制,用于编写与代码并行的单元测试,因此您可以通过自己的测试了解代码覆盖率。作为例子,这可以很容易地用于生成代码文档。
- 平台无关: Go语言和Java语言一样,支持平台无关性。由于其模块化设计和模块性,即代码被编译并转换为尽可能小的二进制形式,因此不需要依赖性。它的代码可以在任何平台、任何服务器和应用程序上编译。