当前位置:网站首页>Go 编程语言(简介)
Go 编程语言(简介)
2022-08-04 22:43:00 【51CTO】
介绍
Go是一种过程式编程语言。它由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 于2007年开发,但于2009 年作为开源编程语言推出。程序通过使用包进行组装,以有效管理依赖关系。该语言还支持采用类似于动态语言的模式的环境。例如,类型推断(y := 0 是浮点类型变量 y 的有效声明)。
从Go 编程开始
有各种在线 IDE,例如 The Go Playground、repl.it 等,无需安装即可运行 Go 程序。
为了在自己的 PC 或笔记本电脑上安装 Go,我们需要以下两个软件:文本编辑器和编译器
文本编辑器: 文本编辑器为您提供了一个编写源代码的平台。 以下是文本编辑器列表:
- Windows 记事本
- 操作系统编辑命令
- Brief
- Epsilon
- vm 或 vi
- Emacs
- VS 代码
寻找 Go 编译器: Go 发行版以二进制形式提供,可用于FreeBSD(版本 8 及更高版本)、Linux、Mac OS X(Snow Leopard 及更高版本)以及具有32 位 (386) 和64 位 (amd64 ) 的Windows 操作系统 ) x86处理器架构。
用 Go 编写第一个程序:
输出:
Go程序的语法解释:
- 第1行:包含程序的main包,包含程序的整体内容,是程序运行的起点,必须写。
- 第 2 行:它包含import “fmt”,它是一个预处理器命令,告诉编译器包含位于包中的文件。
- 第 3 行:main 函数,是程序执行的开始。
- 第 4 行:fmt.Println()是一个标准库函数,用于在屏幕上打印一些内容作为输出。在此,fmt包传递了用于显示输出的 Println 方法。
- 注释:注释用于解释代码,其使用方式与 Java、C 或 C++ 中的类似。编译器忽略注释条目并且不执行它们。注释可以是单行或多行。
单行注释:
语法:
多行注释:
语法:
下面是另一个例子:
输出:
上述程序说明:
在上述程序中,相同的包行、相同的导入行、相同的函数声明和使用与我们在第一个 GO 程序中使用的相同的 Println 函数。这次不是打印字符串 “Hello, go”, 而是打印字符串 1 + 1 = 后跟表达式 1 + 1 的结果。这个表达式由三部分组成:数字文字 1(它的类型为 int )、+ 运算符(表示加法)和另一个数字文字 1。
为什么“Go语言”是这样的?
因为 Go 语言致力于将解释型动态类型语言的编程易用性与静态类型编译语言的效率和安全性相结合。它还旨在实现现代化,支持网络和多核计算。
Go 中排除了哪些其他语言中存在的内容?
- Go 试图减少单词的两种含义的输入量。在整个设计过程中,开发人员试图减少混乱和复杂性。
- 没有前向声明,也没有头文件;一切都只声明一次。
- 使用:=declare-and-initialize 构造的简单类型派生可以减少口吃。
- 没有类型层次结构:类型只是,它们不必宣布它们的关系。
硬件限制
我们观察到,十年来,硬件和处理配置的变化速度非常缓慢。2004 年,P4 的时钟速度为 3.0 GHz,而现在在 2018 年,Macbook pro 的时钟速度为 Approx (2.3Ghz v 2.66Ghz)。为了加快速度,我们使用更多处理器的功能,但使用更多处理器成本也会增加。由于这个原因,我们使用有限的处理器,并且使用有限的处理器,我们有一种繁重的编程语言,其线程占用更多的内存并降低了我们系统的性能。因此,为了解决这个问题,Golang 的设计方式是使用 Goroutine 代替线程,它类似于线程,但消耗的内存非常少。
就像线程消耗 1MB 而 Goroutine 消耗 2KB 内存一样,因此我们可以同时触发数百万个 goroutine。所以上面讨论的一点使 golang 成为像 C++ 和 Java 一样处理并发的强大语言。
Go语言的优缺点
优点:
- 灵活——简洁、简单且易于阅读。
- 并发性-它允许多个进程同时有效地运行。
- 快速结果 - 它的编译时间非常快。
- 库 - 它提供了丰富的标准库。
- 垃圾收集 - 这是 Go 的一个关键特性。Go 擅长对内存分配进行大量控制,并且在最新版本的垃圾收集器中显着减少了延迟。
- 它验证接口和类型嵌入。
缺点:
- 它不支持泛型,即使有很多关于它的讨论。
- 使用这种编程语言分发的包非常有用,但 Go 在传统意义上并不是那么面向对象。
- 缺少一些库,尤其是 UI 工具包。
用 Go 语言开发的一些流行的应用程序
- Docker:一套部署linux容器的工具
- Openshift:红帽的云计算平台即服务。
- Kubernetes:无缝自动化部署流程的未来
- Dropbox:将他们的一些关键组件从 Python 迁移到 Go。
- Netflix:他们的服务器架构的两个部分。
- InfluxDB:是由 InfluxData 开发的开源时间序列数据库。
- Golang:语言本身是用 Go 编写的。
Go语言的特点
- 语言设计:语言的设计者有意识地保持语言简单易懂。整个细节都在几页之内,一些有趣的设计决策是通过语言中的面向对象支持做出的。为此,该语言是固执己见的,并推荐了一种惯用的实现方式。它更喜欢组合而不是继承。在 Go 语言中,“事半功倍”是口号。
- 包管理:Go 融合了现代开发人员处理开源项目的工作流程,并将其包含在管理外部包的方式中。直接在工具中提供支持以获取外部包并通过一组简单的命令发布您自己的包。
- 强大的标准库:Go 有强大的标准库,它以包的形式分发。
- 静态类型:Go 是静态类型语言。因此,在这个编译器中,不仅可以成功编译代码,还可以确保类型转换和兼容性。由于这个特性,Go 避免了我们在动态类型语言中面临的所有问题。
- 测试支持:Go 本身为我们提供了单元测试功能,即一种简单的机制来编写与您的代码并行的单元测试,因此您可以通过自己的测试了解代码覆盖率。作为示例,这可以很容易地用于生成代码文档。
- 平台无关:Go 语言就像 Java 语言一样,支持平台无关。由于其模块化设计和模块化,即代码被编译并转换为尽可能小的二进制形式,因此不需要依赖。它的代码可以在任何平台或您工作的任何服务器和应用程序中编译。
边栏推荐
- One trick to cure pycharm DEBUG error UnicodeDecodeError: 'utf-8' codec can't decode
- Based on the results of the facts
- 2022精选最新金融银行面试真题——附带答案
- torch单机多卡和多机多卡训练
- 一招包治pycharm DEBUG报错 UnicodeDecodeError: ‘utf-8‘ codec can‘t decode
- VSCode - common shortcut keys (continuous recording
- Redis understanding
- 关于el-table列表渲染
- 使用cpolar优化树莓派上的网页(1)
- 正则表达式绕过
猜你喜欢
随机推荐
双非读者,一举拿下阿里、字节、美团、京东、虾皮offer
软件测试外包公司怎么样?有什么好处和坏处?为什么没人去?
Oracle使用expdp和impdp导出导入数据
【游戏建模模型制作全流程】ZBrush蜥蜴模型雕刻教程
Redis理解
得不到你的心,就用“分布式锁”锁住你的人
阿里巴巴2022届秋招面试真题和答案!
论文解读(PPNP)《Predict then Propagate: Graph Neural Networks meet Personalized PageRank》
2022精选最新金融银行面试真题——附带答案
Numpy on the superposition of two arrays
Use ngrok to optimize web pages on raspberry pi (1)
Latex快速插入作者ORCID
期货开户哪个平台好,要正规安全的
JVM memory configuration parameter GC log
文章占位 文章占位
ANT1.7 download and configuration method
限制tensorflow使用Cpu核数
The Record of Reminding myself
深度学习 RNN架构解析
VSCode - common shortcut keys (continuous recording
![[Mock Interview - 10 Years of Work] Are more projects an advantage?](/img/fa/2652629d1ff4653aca0d626ac89bf8.jpg)








