Golang的概述
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang的概述相关的知识,希望对你有一定的参考价值。
Google创造Golang的原因:- 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
- 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。【现有的编程语言;风格不统一;计算能力不够;处理大并发不够好】
- 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度却很慢,同时还存在“内存泄漏”的一系列的困扰需要解决。
Golang的发展历程:
- 2007年,谷歌工程师Rob Pike,Ken Thomson和Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。
- 2009年11月10日,Google将Go语言以开放源代码的方式向全球发布。
- 2015年8月19日,Go1.5版发布,本次更新中移除了“最后残余的C代码”。
- 2017年2月17日,Go语言Go1.8版发布。
- 2017年8月24日,Go语言Go1.9版发布。1.9.2版本
- 2018年2月16日,Go语言Go1.10版发布。
Golang语言的特点:
Go语言保证了既能达到静态编译语言的安全和性能,又能达到动态语言开发维护的高效率;相当于Go=C+Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。
- 从语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针。
举一个案例://go 语言的指针的使用特点: func testPtr(num *int) *num=20
- 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
package main //一个go文件需要在一个包; import “fmt” func sayok() //输出一句话 fmt.Println("ok")
- 垃圾回收机制,内存自动回收,不需要开发人员管理。
- 天然支持大并发。
1)从语言层面支持并发,实现简单;
2)goroutine,轻量级线程,可实现大并发处理,高效利用多核;
3)基于CPS并发模型(Communicating Sequential Processes)实现;
4)吸收了管道通讯机制,形成Go语言特有的管道channel,通过管道可以实现不同的goroute之间的相互通信;
5)函数可以返回多个值;举例://写一个函数,实现同时返回 和,差; //go 函数支持返回多个值; func getSumAndSub(n1 int,n2 int) (int,int) sum := n1 + n2 //go 语言后面不要带分号; sub := n1 - n2 return sum , sub
6)新的创新,比如切片 slice,延时执行 defer;
Golang的开发工具的介绍:
- 工具介绍
1)visual studio code(vscode)Microsoft产品:一个运行于Mac OS X,Windows和Linux之上的,默认提供Go语言的语法高亮,安装Go语言插件,还可以智能提示,编译运行等功能;
2)Sublime Text,可以免费试用,默认也支持Go代码语法高亮,只是保存次数达到一定数量之后就会提示是否购买,点击取消继续使用,和正式注册版本没有任何区别;
3)Vim,Vim是从vi发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用;
4)Emacs,Emacs传说中的神器,它不仅仅是一个编辑器,因为功能强大,可称它为集成开发环境;
5)Eclipse IDE工具,开源免费,并提供GoEclipse插件;
6)LiteIDE, LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),是国人开发的;
7)JetBrains公司的产品:phpStrom、WebStrom和PyCharm等IDE工具,都需要安装Go插件;
以上是关于Golang的概述的主要内容,如果未能解决你的问题,请参考以下文章
387集Go语言核心编程培训视频教材整理 | Golang的概述