Golang 入门 : Go语言介绍
简介
Go 语言又称 Golang,由 Google 公司于 2009 年发布,近几年伴随着云计算、微服务、分布式的发展而迅速崛起,跻身主流编程语言之列,和 Java 类似,它是一门静态的、强类型的、编译型编程语言,为并发而生,所以天生适用于并发编程(网络编程)。
目前 Go 语言支持 Windows、Linux 等多个平台,也可以直接在 Android 和 iOS 等移动端执行,从业务角度来看,Go 语言在云计算、微服务、大数据、区块链、物联网、人工智能等领域都有广泛的应用。所以当下学习正当时。
是谁创造了Go语言
Ken Thompson C语言Unix和Plan9的创始人之一,20世纪70年代 设计并实现了Unix操作系统,还和Rob Pike 设计了UTF-8编码。
Rob Pike 不但设计了UTF-8编码,还开发了分布式多用户操作系统Plan9 Inferno操作系统和Limbo编程语言。
Robert Griesemer 就职于Google,负责Chrome浏览器中Google V8引擎的代码。
他们于2007年开始设计Go语言,于2009年正式对外发布。Go语言即具备python等动态语言的开发速度,又拥有C/C++等编译型语言的性能与安全性。又被称作21世纪的C语言,不但能够访问底层操作系统还提供了强大的网络编程和并发编程,分布式编程。
Go语言特性
开放源代码 Go本身就是用Go语言编写的。
快速 天下武功唯快不破,选择一门快速的语言例如C语言,却难以开发,编译速度依赖性运行时错误都非常多,要么有些语言依赖关系太多,最重要的一个就是解释器本身,例如Java语言需要虚拟机才能运行代码,javascript和node.js维护起来就是噩梦了。尤其是遇到回调。Go语言一开始设计就考虑到快速编译。他能像其他解释性语言一样,你不会注意他正在编译。
安全 作为强类型静态语言,并自带垃圾回收机制所以也具有安全性。因为Go的语言设计拥有像C语言那样操作指针,但是他通常不会像C语言那样危险,因为他内存是由Go自身进行管理的。
代码简洁 Go语言不仅在编译上快速,而且代码简洁明了,易于阅读。
已编译 不需要虚拟机支持,可直接编译成机器代码,编译后的文件也不需要依赖其他包文件。
跨平台 Go语言拥有的交叉编译,可以轻松编译到指定的平台上运行:例如OS X、Linux、Windows、Arm或者其他平台。
自动垃圾回收 程序在运行过程中的垃圾回收工作一般由Go运行时系统全权负责。不过,Go也允许我们对此项工作进行干预。
内置包 Go语言拥有几乎所有你能用到的标准库。例如http网络协议包,json解析包,time时间包等等。这种碎片化的东西在一个系统中占用大部分时间。
完整的构建工具 Go语言出色的内置命令工具,它自带了很多强大的命令和工具,通过它们,可以很轻松地完成Go程序的获取、编译、测试、安装、运行、分析等一系列工作。例如自动设置代码格式,检查代码存在的问题,go fmt命令每次保存后自动格式化代码。
原生的并发编程 并发在Go语言中属于一大亮点,并发的最小单元是协程,是一个微线程却有别于线程。协程由Go语言自身创建,并且由Go语言自身的运行时runtime调度。在其他语言中需要通过线程来解决的问题。一台电脑能够开启的线程数量是有限制的。在Go语言中可以很轻松开启一个协程来处理,因为协程很微型,不会占用电脑资源。一台电脑可以轻松开启成千上万个协程,在这个大数据的时代,能够处理大流量的数据能力的语言,并且能够简单快速开放的语言,非Go语言莫属了。
哪些公司都在使用Go语言
Go社区中至少有100万名Go程序员。越来越多的公司都拥抱Go语言,最著名的使用Go语言的公司Google,Docker,Dropbox,Heroku,Uber等。国内的比如滴滴,腾讯,阿里,京东商城,爱奇艺,小米,360,美团,驴妈妈旅游网,斗鱼直播,探探 等等 都在使用Go语言。包括哔哩哔哩的后台也从java转向了Go 可见Go语言的受欢迎程度。
Golang 入门 : Go语言介绍相关推荐
- R语言入门1---R语言介绍以及学前注意事项
R语言是从贝尔实验室的S语言演变而来的,基于S语言开发的商业软件Splus,可以方便的编写函数.建立模型,具有良好的扩展性,取得了巨大成功.1995年由新西兰Auckland大学统计系的Robert ...
- Golang 入门 : Go语言的设计哲学
前言 设计哲学之于编程语言,就好比一个人的价值观之于这个人的行为. 因为如果你不认同一个人的价值观,那你其实很难与之持续交往下去,即所谓道不同不相为谋.类似的,如果你不认同一门编程语言的设计哲学,那么 ...
- R语言学习笔记——入门篇:第一章-R语言介绍
R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...
- 【Golang入门】二、Go语言快速开发
需求:开发一个hello.go程序,要求输出"hello world". 采用VScode进行Golang的开发,因此这一系列博客的代码均在VScode编译器上编译实现. 这里我们 ...
- C语言入门系列一之C语言介绍、环境配置和运行执行
鉴于书本和教材文字过多.又难懂的缺点,所以我打算写一系列通俗移动的C语言入门教程,让大家在短时间内学习和掌握C语言,以及遇到C语言的一些问题该如何得到快速的解决.希望这些系列的教程,能够帮助到大家!该 ...
- R语言从入门到精通Day1之【R语言介绍】
R语言开篇–R语言介绍 开篇不再介绍R语言是如何下载和R语言的代码,如果您想真正的了解R,学习R,利用R做一些实际性的应用,不妨花点时间先了解一下当前数据科学的进展.了解R语言的历史和发展进程,R语言 ...
- golang开发工程师-第一步:golang入门基础教学
golang入门基础教学 前言 一.golang的优势何在? 二.goland破解教程 三.goland的使用教程 四.一个简单的go代码 五.变量的声明和赋值 六.数据类型的基本介绍 七.访问权限[ ...
- 一文带你入门go语言
一文带你入门go语言 go/golang是一门google开发的编程语言,其代码简洁易读,天生支持并发,完美契合当今互联网生态. 目前Go语言已经⼴泛应用于人工智能.云计算开发.容器虚拟化.⼤数据开发 ...
- 爱上开源之golang入门至实战-使用IDE开发Golang
使用IDE开发Golang 上一节,使用文本编辑器,我们开启了golang之旅,除了通过文本编辑器的方式来进行程序开发,我们还可以通过使用golang的集成开发环境工具(IDE)来进行更高效率,更快速 ...
- NLP汉语自然语言处理入门基础知识介绍
NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...
最新文章
- ICML2020 | GCNII:使用初始残差和恒等映射解决过度平滑
- 5g的八大关键指标_你对5G技术标准了解多少(干货)
- Error opening/initializing the selected video_out (-vo) device.
- HDOJ 1176 免费馅饼 -- 动态规划
- python怎么用for循环找出最大值_用for循环语句写一个在输入的十个数字中求最大和最小值的python程序应该怎么写?...
- SpringMVC_02
- stringbuilder_String,StringBuilder,StringBuffer三者的区别?
- linux svn 修改回退,玩转SVN-版本回退
- 搜狗站长html标签验证,各大搜索引擎站长验证以及百度统计代码配置
- C++和数据结构考试总结
- 两个瓶子水怎样一样多_大班科学-两杯水一样多吗?
- java销毁servlet_销毁servlet
- Linux(CentOS、Ubuntu)下,磁盘分区、挂载
- 遥测、遥信、遥控、遥调的简要说明
- 要活 102 年,阿里凭借的是什么?
- mPaaS 客户端证书错误避坑指南
- win 8.1 64位彻底删除王码98
- Bpmn.js自定义文件说明
- [DP] BZOJ 4244 邮戳拉力赛
- 流程管理-测试面试题
热门文章
- Codeforces 208E. Blood Cousins
- HDOJ_2006_求奇数的乘积
- vue.js--基础 数据的双向绑定
- 河南工业大学2017校赛题解
- SCCM 部署操作系统 ,提示权限问题,报错:0xc00000098
- 关于官方Reachability Demo理解
- TransparentImage、TransparentBlt - [Daliy APIs]
- tf.image.resize_images
- GCC Link Time Optimization
- 移植基于Qt4.4-tp1的WebKit到ARM平台