前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go 编程语言(简介)

Go 编程语言(简介)

作者头像
用户11164002
发布2024-06-17 14:50:09
720
发布2024-06-17 14:50:09
举报
文章被收录于专栏:搬运文章搬运文章

介绍

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语言的优缺点

优点:

  1. 灵活——简洁、简单且易于阅读。
  2. 并发性-它允许多个进程同时有效地运行。
  3. 快速结果 - 它的编译时间非常快。
  4. 库 - 它提供了丰富的标准库。
  5. 垃圾收集 - 这是 Go 的一个关键特性。Go 擅长对内存分配进行大量控制,并且在最新版本的垃圾收集器中显着减少了延迟。
  6. 它验证接口和类型嵌入。

缺点:

  1. 它不支持泛型,即使有很多关于它的讨论。
  2. 使用这种编程语言分发的包非常有用,但 Go 在传统意义上并不是那么面向对象。
  3. 缺少一些库,尤其是 UI 工具包。

用 Go 语言开发的一些流行的应用程序

  • Docker:一套部署linux容器的工具
  • Openshift: 红帽的云计算平台即服务。
  • Kubernetes: 无缝自动化部署流程的未来
  • Dropbox: 将他们的一些关键组件从 Python 迁移到 Go。
  • Netflix: 他们的服务器架构的两个部分。
  • InfluxDB: 是由 InfluxData 开发的开源时间序列数据库。
  • Golang: 语言本身是用 Go 编写的。

Go语言的特点

  • 语言设计:语言的设计者有意识地保持语言简单易懂。整个细节都在几页之内,一些有趣的设计决策是通过语言中的面向对象支持做出的。为此,该语言是固执己见的,并推荐了一种惯用的实现方式。它更喜欢组合而不是继承。在 Go 语言中, “事半功倍” 是口号。
  • 包管理:  Go 融合了现代开发人员处理开源项目的工作流程,并将其包含在管理外部包的方式中。直接在工具中提供支持以获取外部包并通过一组简单的命令发布您自己的包。
  • 强大的标准库:  Go 有强大的标准库,它以包的形式分发。
  • 静态类型:  Go 是静态类型语言。因此,在这个编译器中,不仅可以成功编译代码,还可以确保类型转换和兼容性。由于这个特性,Go 避免了我们在动态类型语言中面临的所有问题。
  • 测试支持:  Go 本身为我们提供了单元测试功能,即一种简单的机制来编写与您的代码并行的单元测试,因此您可以通过自己的测试了解代码覆盖率。作为示例,这可以很容易地用于生成代码文档。
  • 平台无关:  Go 语言就像 Java 语言一样,支持平台无关。由于其模块化设计和模块化,即代码被编译并转换为尽可能小的二进制形式,因此不需要依赖。它的代码可以在任何平台或您工作的任何服务器和应用程序中编译。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3vay20qgf1icc

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档