介绍
Go是一种过程编程语言。它由Google的Robert Griesemer,Rob Pike和Ken Thompson于 2007年开发,但于 2009年作为一种开放源代码编程语言发布。程序通过使用软件包进行组装,从而有效地管理依赖关系。该语言还支持动态语言一样的环境采用模式。例如,类型推断(y:= 0是float类型的变量y的有效声明)。
有各种在线IDE,例如Go Playground,repl.it等,可用于运行Go程序而无需安装。
要在自己的PC或笔记本电脑中安装Go,我们需要以下两个软件:文本编辑器和Compiler
文本编辑器:文本编辑器为您提供了一个用于编写源代码的平台。以下是文本编辑器的列表:
- Windows记事本
- 操作系统编辑命令
- 简要
- 厄普西隆
- vm或vi
- 埃马克斯
查找Go编译器: Go发行版可作为FreeBSD(版本8和更高版本),Linux,Mac OS X(Snow Leopard和更高版本)以及具有32位(386)和64位(amd64 )的 Windows操作系统的二进制安装文件。)x86处理器体系结构。
有关安装的更多说明。请访问有关安装GO发行版的信息
注意:go语言的源代码文件扩展名必须是.go
用Go编写第一个程序:
包主
导入“ fmt”
func main(){
//打印geeksforgeeks fmt.Println(“ Hello,geeksforgeeks”) }
输出:
你好,极客
Go程序的语法说明:
- 第1行:它包含程序的主体程序包,具有程序的总体内容。这是运行程序的起点,因此必须编写程序。
- 第2行:它包含import“ fmt”,它是一个预处理器命令,告诉编译器包括位于包中的文件。
- 第三行:主要功能,它是程序执行的开始。
- 第4行:fmt.Println()是一个标准的库函数来打印的东西作为一个screen.In输出此,FMT包已经transmited的println方法,该方法用于显示的输出。
- 注释:注释用于解释代码,并且以与Java或C或C ++类似的方式使用。编译器将忽略注释条目,并且不执行它们。注释可以是单行或多行。
单行注释:
语法:
//单行注释
多行注释:
语法:
/ *多行注释* /
以下是另一个示例:
包主 导入“ fmt”
func main(){ fmt.Println(“ 1 + 1 =”,1 + 1) }
输出:
(adsbygoogle = window.adsbygoogle || []).push({});
1 +1 = 2
上面程序的解释:
在上面的程序中,与第一个GO程序中相同的封装行,相同的导入行,相同的函数声明并使用相同的Println函数。这次,我们不打印字符串“ Hello,geeksforgeeks”,而是打印字符串1 +1 =后跟表达式1 +1的结果。此表达式由三部分组成:数字文字1(其类型为int ),+运算子(代表加法)和另一个数字文字1。
为什么使用这种“ Go语言”?
因为Go语言是一种将解释型动态类型的语言的编程简便性与静态类型的已编译语言的效率和安全性相结合的一项工作。它还旨在成为现代化的,并支持网络和多核计算。
Go中其他语言不包含的内容除外?
- Go尝试减少两种词义的打字量。在整个设计过程中,开发人员试图减少混乱和复杂性。
- 没有前向声明,也没有头文件;一切都只被声明一次。
- 使用:=声明并初始化结构可以通过简单的类型派生来减少口吃。
- 没有类型层次:类型只是是,他们没有宣布他们的关系。
硬件限制
我们已经观察到十年来,硬件和处理配置的变化速度非常缓慢。2004年,P4的时钟速度为3.0 GHz,而到了2018年,Macbook pro的时钟速度为大约(2.3Ghz v 2.66Ghz)。为了加快速度,我们使用了更多处理器,但是使用更多处理器也会增加成本。由于这个原因,我们使用有限的处理器,而使用有限的处理器,则我们的编排繁重。这种语言的线程占用更多的内存并降低了我们系统的性能,因此,为了克服此类问题,Golang的设计方式是不使用线程,而是使用Goroutine,它类似于线程,但占用的内存却很少。
就像线程消耗了1MB的内存,而Goroutine消耗了2KB的内存一样,因此,我们可以同时触发数百万个goroutine。
因此,上述要点使golang成为处理诸如C ++和Java之类的并发性的强大语言。
Go语言的优缺点
好处:
- 灵活-简洁,简单且易于阅读。
- 并发-它允许多个进程同时有效地运行。
- 快速结果-编译时间非常快。
- 库-它提供了丰富的标准库。
- 垃圾收集-这是go的关键功能。Go擅长对内存分配进行大量控制,并且在最新版本的垃圾收集器中大大减少了延迟。
- 它验证接口和类型嵌入。
缺点:
- 即使有很多讨论,它也不支持泛型。
- 使用这种编程语言分发的软件包非常有用,但是按照常规意义上的Go并不是面向对象的。
- 缺少某些库,尤其是UI工具包。
使用Go语言开发的一些流行应用程序
- Docker:一套用于部署Linux容器的工具
- Openshift: Red Hat提供的云计算平台即服务。
- Kubernetes:无缝自动化部署过程的未来
- Dropbox: 将其一些关键组件从Python迁移到Go。
- Netflix:服务器架构的两个部分。
- InfluxDB:是InfluxData开发的一个开源的时间序列数据库。
- Golang:语言本身是用Go语言编写的。
Go语言的功能
- 语言设计:语言的设计者有意识地有目的地保持语言的简单易懂。整个详细说明都在少量页面中,并且通过该语言的面向对象支持做出了一些有趣的设计决策。为此,该语言受到了欢迎并提出了一种惯用的实现方式的建议。与继承相比,它更偏爱组合。在Go语言中,“事半功倍”是我们的口头禅。
- 软件包管理: Go将与开源项目一起工作的现代开发人员工作流合并在一起,并以其管理外部软件包的方式进行了合并。工具中直接提供了支持,以获取外部软件包并通过一组简单的命令发布您自己的软件包。
- 强大的标准库: Go具有强大的标准库,它作为软件包分发。
- 静态键入: Go是静态类型的语言。因此,在此编译器中,不仅可以成功地编译代码,而且还可以确保类型转换和兼容性。由于有了此功能,Go避免了我们在动态类型化语言中遇到的所有问题。
- 测试支持: Go本身就提供了单元测试功能,即一种简单的机制来与代码并行地编写单元测试,因此您可以通过自己的测试来了解代码覆盖率。作为示例,可以轻松地将其用于生成代码文档。
- 平台无关: Go语言与Java语言一样,因为它支持平台独立性。由于其模块化的设计和模块化,即代码被编译并转换为尽可能小的二进制形式,因此不需要依赖性。可以在您使用的任何平台或任何服务器和应用程序中编译其代码。
© 著作权归作者所有
发表评论