我的编程空间,编程开发者的网络收藏夹
学习永远不晚

什么是golang

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

什么是golang

本教程操作环境:windows10系统、GO 1.11.2、thinkpad t480电脑。

Go语言

Go语言 是Google公司 在2007开发一种静态强类型、编译型语言,并在 2009 年正式对外发布。

golang(又称go语言)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它是一款简单的开源编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go语言可以在不损失应用程序性能的情况下极大的降低代码的复杂性,还可以发挥多核处理器同步多工的优点,并可解决面向对象程序设计的麻烦,并帮助程序设计师处理琐碎但重要的内存管理问题,相比于其他编程语言,简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速是其特色。

Go语言以其近C的执行性能和近解析型语言的开发效率,以及近乎于完美的编译速度,已经风靡全球。很多人将Go语言称为21世纪的C语言,因为Go不仅拥有C的简洁和性能,而且针对多处理器系统应用程序的编程进行了优化,很好的提供了21世纪互联网环境下服务端开发的各种实用特性。

Go语言的诞生

事件起源于2007年9月,当时 C++委员会正在 Google 对 C++ 语言新增加的35个新的特性进行一场分享演讲。

Google 的技术大神们也在认真听讲座,其中就有Go语言的三个创作者,分别是: Robert Griesemer(罗伯特.格利茨默),Rob Pike(罗伯.派克),Ken Thompson(肯.汤普森)。


  • Rob Pike(罗伯.派克)

    罗布·派克是Unix的先驱,是贝尔实验室最早和Ken Thompson以及 Dennis M. Ritche(C语言之父) 开发Unix的猛人,UTF-8的设计人。让人佩服不已的是,罗伯伯还是1980年奥运会射箭的银牌得主。

  • Ken Thompson(肯.汤普森)

    Ken Thompson,C语言前身B语言的作者,与Dennis Ritchie是Unix的原创者。1983年图灵奖得主以及1998年美国国家技术奖(National Medal of Technology)得主。

  • Robert Griesemer(罗伯特.格利茨默)

    参与制作了Java的HotSpot编译器以及Chrome浏览器的javascript的搜索引擎V8。

随着会议的中场休息,大家开始了对这些 C++ 语言新特性是否带来更多的价值进行吐槽。Rob Pike他们认为:简化语言的成就远大于添加功能。于是,一门新的语言,Go,在这个思路下应运而生。

2007 年 9 月 25 号,Rob Pike在回家的路上得到关于新语言名字的灵感,于是给另外两人发了邮件:

2-2.png

邮件正文大意为:

在开车回家的路上我得到了些灵感。

1.给这门编程语言取名为“go”,它很简短,易书写。工具类可以命名为:goc、 gol、goa。

交互式的调试工具也可以直接命名为“go”。语言文件后缀名为 .go 等等

这就是 Go 语言名字的来源,自此之后 Robert、Rob 和 Ken 三个人开始在 Google 内部进行了研发,一直到了 2009 年,Go 正式开源了,Go 项目团队将 2009 年 11 月 10 日,即该语言正式对外开源的日字作为其官方生日。源代码最初托管在 http://code.google.com 上,之后几年才逐步的迁移到 GitHub 上。

Go语言的版本

Go 1.0 — 2012 年 3 月:Go 的第一个版本,带着一份兼容性说明文档来保证与未来发布版本的兼容性,进而不会破坏已有的程序。

Go 1.1 — 2013 年 5 月:这个 Go 版本专注于优化语言(编译器,gc,map,go 调度器)和提升它的性能。

Go 1.3 — 2014 年 6 月:这个版本对栈管理做了重要的改进。栈可以申请[连续的内存片段,提高了分配的效率

Go 1.4 — 2014 年 12 月:此版本带来了官方对 Android 的支持,让我们可以只用 Go 代码就能写出简单的 Android 程序。

Go 1.7 — 2016 年 8 月: 这个版本发布了context 包,为用户提供了处理超时和任务取消的方法。

Go 1.11 — 2018 年 8 月: Go 1.11 带来了一个重要的新功能:Go modules。

Go语言的优势

Go语言的应用领域

使用Go的大型互联网公司

Go语言的强项在于它适合用来开发网络并发方面的服务,比如消息推送、监控、容器等,所以在高并发的项目上大多数公司会优先选择 Golang 作为开发语言。另外一个应用就是对一些python,php或者java项目进行重构。

扩展知识:

什么是编程语言

编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样)。就像我们中国人之间沟通需要汉语,英国人沟通需要英语一样,人与计算机之间进行沟通需要一门语言作为介质,即编程语言。

编程语言的发展经历了机器语言(指令系统)=>汇编语言=>高级语言(C、java、Go等)。

010010101001-》ADD

  • 计算机在设计中规定了一组指令(二级制代码),这组指令的集和就是所谓的机器指令系统,用机器指令形式编写的程序称为机器语言。

  • 但由于机器语言的千上万条指令难以记忆,并且维护性和移植性都很差,所以在机器语言的基础上,人们提出了采用字符和十进制数代替二进制代码,于是产生了将机器语言符号化的汇编语言。

  • 虽然汇编语言相较于机器语言简单了很多,但是汇编语言是机器指令的符号化,与机器指令存在着直接的对应关系,无论是学习还是开发,难度依然很大。所以更加接近人类语言,也更容易理解和修改的高级语言就应运而生了,高级语言的一条语法往往可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。

编译型语言与解释性语言

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式分为编译和解释两种。由此高级语言也分为编译型语言和解释型语言。

  • 编译型语言

使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。

编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。

1、一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;

2、与特定平台相关,一般无法移植到其他平台;

  • 解释型语言

使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。

1.解释型语言每次运行都需要将源代码解释称机器码并执行,执行效率低;

2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

什么是golang

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

什么是golang

golang是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言;它可以在不损失应用程序性能的情况下极大的降低代码的复杂性,还可以发挥多核处理器同步多工的优点,并可解决面向对象程序设计的麻烦,并帮助程序设计师处理琐碎但重要的内存管理问题。
2022-11-22

golang embed是什么

本篇内容主要讲解“golang embed是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“golang embed是什么”吧! embed是
2023-06-25

golang Gob是什么

gob是Golang包自带的一个数据结构序列化的编码/解码工具,编码使用Encoder,解码使用Decoder。Gob使用io.Writer 接口,通过NewEncoder()函数创建Encoder对象通过调用Encode()方法实现编码操作;使用io.Reader接口,通过NewDecoder()函数创建Decoder对象并调用Decode()方法完成解码操作。
2023-05-14

golang是什么软件

go 编程语言(又称 golang)是一种由 google 开发的开放源码语言,以其并发性、静态类型、垃圾收集、跨平台性、易用性和广泛的应用而闻名。什么是 Go 编程语言?Go,又称 Golang,是一种由 Google 开发的开放源码编
golang是什么软件
2024-04-21

golang断言是什么

golang断言是一种用于判定某个条件是否为真的机制。它在Go语言中用于判定某个条件是否为真,并在条件不满足时触发相应的操作。通过使用断言,我们可以根据具体类型执行不同的操作,以实现更加灵活和可扩展的程序逻辑。Golang(也被称为Go)是
2023-07-17

golang的web是什么

golang的web是指使用Go语言进行Web开发的一种简洁、高效、高性能的开发方式,其开发特点和优势:1、具有高性能,可以轻松创建数千个协程,并发执行任务;2、具有简洁的语法和代码结构,可以更加专注于业务逻辑的实现;3、具有丰富的标准库和
2023-08-02

golang中map是什么

在golang中,map是一种特殊的数据结构,是一个key(索引)和value(值)形式的无序的集合,也可以称为关联数组或字典;map是一种能够快速寻找值的理想结构,是能够快速根据给定key,找到对应的value的数据结构。
2023-05-14

什么是golang协程

golang协程是一种非常强大和高效的并发机制。过提供轻量级的线程和便捷的通信方式,使得开发者可以方便地编写高并发的程序,协程的使用可以极大地简化并发编程,可以将一个复杂的任务拆分成多个较小的子任务,并将这些子任务以协程的形式并行执行。协程
2023-08-02

golang异步是什么

在golang中,异步是指不按照代码顺序执行,一个异步过程的执行将不再与原有的序列有顺序关系;在异步中,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。golang异步主要是由协程(goroutine)实现的;goroutine用来调用函数,当某个函数被go关键字调用后,go就会创建一个类似协程的东西,来执行这个函数,这样可以轻易的实现并发。
2023-05-14

golang优势是什么

golang优势包括:1、高效性能;2、并发编程;3、简洁的语法;4、强大的标准库;5、跨平台支持;6、静态类型检查;7、强大的工具链。详细介绍:1、高效性能,Golang是一种编译型语言,具有高效的性能,它的运行速度非常快,能够处理大量数
golang优势是什么
2023-12-14

golang中什么是泛型

在golang中,泛型是程序设计语言的一种风格或范式,是指编写模板适应所有类型,只有在具体使用时才定义具体变量类型。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
2023-05-14

golang主要是做什么

golang主要用于构建高并发的服务器端应用程序,特别适合于处理大量请求和高负载的系统。Golang具有以下几个特点:1、协程和并发,通过goroutines和channels提供了一种简单而高效的并发模型;2、高效的系统编程,通过提供丰富
2023-07-24

golang channel原理是什么

在Go语言中,channel是一种用于传递数据的数据类型。可以把它看作一个通信管道,用于goroutine之间的数据传输。Channel的原理是通过goroutine之间的通信实现数据的同步和共享。它提供了一种安全和有效的方式,确保不同g
2023-10-20

golang异或符是什么

在Go语言中,异或运算符表示为 ^。异或运算符是一个二元运算符,用于对两个整数进行按位异或操作。其规则是,如果两个对应位的数不同,则结果为1,否则为0。在Go语言中,^ 运算符也可以用于对布尔值进行逻辑异或操作。本教程操作系统:window
golang异或符是什么
2023-12-14

golang的优势是什么

本文小编为大家详细介绍“golang的优势是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang的优势是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。golang的优势:1、学习曲线容易;2、开发
2023-07-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录