100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Go语言系列——Go语言介绍

Go语言系列——Go语言介绍

时间:2019-07-26 01:42:17

相关推荐

Go语言系列——Go语言介绍

文章目录

01-Go语言介绍一 Go语言介绍二 Go语言特性三 Go语言发展(版本/特性)四 Go语言应用谁在用GoogleFacebook腾讯百度京东小米360应用领域五 Go语言项目六 Go语架构七 go适合做什么八 Go语言发展前景02-开发环境搭建一 下载地址二 安装Linux安装Windows安装Mac安装三 配置GOPATH和GOROOT四 测试安装五 命令介绍5.1 基本介绍5.2 build 和 run 命令5.3 get 命令GoLand环境搭建一 GoLand集成开发环境下载二 使用GoLand04-VS code配置Go环境一、VS Code配置Go语言开发环境二、下载与安装三、安装中文简体插件四、安装Go开发扩展五、变更编辑器主题六、安装Go语言开发工具包6.1 方法一:使用git下载源代码再安装6.2 方法二:下载已经编译好的可执行文件七、配置自动保存八、配置代码片段快捷键

01-Go语言介绍

一 Go语言介绍

Go 即Golang,是Google公司11月正式对外公开的一门编程语言。

Go是静态强类型语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)。

解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。

编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行。

二 Go语言特性

跨平台的编译型语言

语法接近C语言

管道(channel),切片(slice),并发(routine)

有垃圾回收的机制

支持面向对象和面向过程的编程模式

三 Go语言发展(版本/特性)

11月7日 weekly.-11-06 —— 早期的版本

3月28日 go1 —— 稳定版版的发布

5月14日 go1.1 —— 语言本身的变化、库的变化等。

12月01日 go1.2 —— 提供更好的调度和一个新的语言特性。

6月18日 go1.3 —— 主要是在实现的工作上的变化,以及精准的垃圾回收。

12月10日 go1.4 —— 包含了2个很小的语言变更。

8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”。

2月7日 go1.6 —— 语言本身、运行时、和库的实现的变化。

8月15日 go1.7 —— 标准库有显着的性能改进和变化。

2月26日 go1.8 —— 标准库有显着的性能改进和变化。

8月24日 go1.9 —— 是包含语言,标准库,以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。

2月16日 go1.10 —— 大部分更改都在工具链,运行时和库的实现中。

8月24日 go1.11 —— modules和WebAssembly支持。

年 2 月 go 1.12 —— modules和WebAssembly支持。

年 2 月 go 1.12— — 基于 analysi包重写了 go vet命令,为开发者写自己的检查器提供了更大的灵活性 年 9 月 go 1.13— — 改进了sync包中的Pool`,在 gc 运行时不会清除 pool。它引进了一个缓存来清理两次 gc 运行时都没有被引用的 pool 中的实例。重写了逃逸分析,减少了 Go 程序中堆上的内存申请的空间

年 2 月 go 1.14— — 现在 Go Module 已经可以用于生产环境,鼓励所有用户迁移到 Module。该版本支持嵌入具有重叠方法集的接口。性能方面做了较大的改进,包括:进一步提升 defer 性能、页分配器更高效,同时 timer 也更高效。现在,Goroutine 支持异步抢占

# 语法变化– 增加一种非常小概率使用的for range语法for range x {… } 等价于 for _ = range x {…}– 不再自动对 **T 进行解引用(dereference)对 var x **T,以前可直接用 x.Fn() 调用 T 的方法– 现在需要明确写 (*x).Fn()– 引入 internal package 概念在 Go1.4 只对主路径($GOROOT)有效,未来会全面应用到$GOPATH– 引入 canonical import paths (权威导入路径) 概念package pdf // import "rsc.io/pdf"#2 实现细节– 开始支持 Android (编译出binary或.so)– 运行时(runtime)-大部分用Go重写(以前是C),好处:更加精确的GC-放弃了分段栈(segmented stack)

预计 年 8 月 go 1.15

# 1 语法变化– map 字面量简化写法var x = map[Point]int{{1.0, 2.1}: 1,{2.3, 4.5}: 2,}# 2 实现细节– 自举:不再有C,所有代码(包括编译器、链接器和运行时)都用Go和少量汇编实现– GC:重写GC,进一步降低GC的latency– GOMAXPROCS 默认是 CPU 数(以前是1)– 开始支持 iOS:Go team 还提交了第一个 Go 写的 AppStore 应用 Ivy

四 Go语言应用

谁在用

Google

这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:/kubernetes/kubernetes ,大家也可以在Github上 /google/ 查看更多Google的Go开源项目。

Facebook

Facebook也在用,为此他们还专门在Github上建立了一个开源组织facebookgo,大家可以通过/facebookgo访问查看facebook开源的项目,比如著名的是平滑升级的grace。

腾讯

腾讯作为国内的大公司,还是敢于尝试的,尤其是Docker容器化这一块,他们在已经做了docker万台规模的实践,具体可以参考/cn/articles/tencent-millions-scale-docker-application-practice 。

主要职责是:

负责腾讯游戏蓝鲸平台后台开发工作负责容器相关的开发工作

和蓝鲸平台,容器开发有关。腾讯作为主要使用C/C++的公司,使用Go会方便很多,也有很多优势,不过日积月累的C/C++代码很难改造,也不敢动,所以新业务会在Go方面尝试。

百度

目前所知的百度的使用是在运维这边,是百度运维的一个BFE项目,负责前端流量的接入。他们的负责人在有分享,大家可以看下这个 /cn/presentations/application-of-golang-in-baidu-frontend .

其次就是百度的消息系统,从其最近的Golang招聘介绍就可以看出来.

负责公司手百消息通讯系统服务器端开发及维护

京东

京东云消息推送系统、云存储,以及京东商城等都有使用Go做开发。

小米

小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-/ 。

此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。

360

360对Golang的使用也不少,一个是开源的日志搜索系统Poseidon,托管在Github上,/Qihoo360/poseidon.

还有360的推送团队也在使用,他们还写了篇博文在Golang的官方博客上 /qihoo。

360直播在招聘Golang开发工程师。

美团、滴滴、新浪以及七牛等。一般的选择,都是选择用于自己公司合适的产品系统来做,比如消息推送的、监控的、容器的等,Golang特别适合做网络并发的服务,这是他的强项,所以也是被优先用于这些项目。

应用领域

服务开发、并发、分布式、微服务等方向

五 Go语言项目

docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。

kubernetes :Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡

区块链:BTCD 是用go语言实现的完整节点的比特币实现

nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息

packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者

skynet:分布式调度框架

Doozer:分布式同步工具,类似ZooKeeper

Heka:mazila开源的日志处理系统

cbfs:couchbase开源的分布式文件系统

tsuru:开源的PAAS平台,和SAE实现的功能一模一样

groupcache:memcahe作者写的用于Google下载系统的缓存系统

god:类似redis的缓存系统,但是支持分布式和扩展性

gor:网络流量抓包和重放工具

六 Go语架构

GOPATH的工作区包含bin,src,和pkg这三个:

src——源码(包含第三方的和自己项目的)

bin——编译生成的可执行程序

pkg——编译时生成的对象文件

七 go适合做什么

服务端开发分布式系统,微服务网络编程区块链开发内存KV数据库,例如boltDB、levelDB云平台

八 Go语言发展前景

Go语言将登上语言榜前列,与C和Java并列前三甲

Go语言称霸云计算

Go将统治下一个

目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。

Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态

02-开发环境搭建

一 下载地址

安装包下载地址为:/dl/。

如果打不开可以使用这个地址:/dl/。

各个系统对应的包名:

操作系统

包名

Windows

go1.13.3.windows-amd64.msi

Linux

go1.13.3.linux-amd64.tar.gz

Mac

go1.13.3.darwin-amd64.pkg

FreeBSD

go1.13.3.freebsd-amd64.tar.gz

二 安装

Linux安装

1、下载二进制包:go1.13.3.linux-amd64.tar.gz

2、将下载的二进制包解压至 /usr/local目录。

tar -C /usr/local -xzf go1.13.3.linux-amd64.tar.gz

3、将 /usr/local/go/bin 目录添加至PATH环境变量:

//这样在任意 位置敲 go 就可以执行export PATH=$PATH:/usr/local/go/bin

Windows安装

Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.13.3.windows-amd64.msi)的安装包来安装。

默认情况下.msi文件会安装在c:\Go目录下。将c:\Go\bin目录添加到Path环境变量中。添加后你需要重启命令窗口才能生效(默认已经添加了,这样在cmd窗口下敲 go 能找到该命令)

Mac安装

Mac下直接双击go1.13.3.darwin-amd64.pkg,一路下一步安装即可

三 配置GOPATH和GOROOT

/*GOPATH:代码存放路径,该目录下有三个文件夹(如果没有,要手动创建),windows和mac默认在用户名下的go文件夹(GOPATH="/Users/liuqingzheng/go")-src——源码(包含第三方的和自己项目的)-bin——编译生成的可执行程序-pkg——编译时生成的对象文件GOROOT:go开发工具包的安装路径,默认:C:\go将GOROOT下的bin路径加入环境变量(默认已处理),这样任意位置敲 go 都能找到该命令*///windows下修改在系统变量里添加变量名:GOPATH变量值:C:\>Go_Project//mac和linux下修改GOPATH="/Users/liuqingzheng/go/" 直接写要修改的路径即可

四 测试安装

//在命令行下输入go version //可以看到go version go1.13.5 darwin/amd64//输入,可以看到go env...GOARCH="amd64"GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="/Users/liuqingzheng/go"GOROOT="/usr/local/go"...

五 命令介绍

5.1 基本介绍

直接在终端中输入go help即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:

build: 编译包和依赖clean: 移除对象文件(go clean :删除编译的可执行文件)doc: 显示包或者符号的文档env: 打印go的环境信息bug: 启动错误报告fix: 运行go tool fixfmt: 运行gofmt进行格式化(go fmt :自动将代码格式)generate: 从processing source生成go文件get: 下载并安装包和依赖(go get /astaxie/beego:下载beego框架)install: 编译并安装包和依赖(go install 项目名:会将go编译,并放到bin路径下)list: 列出包run: 编译并运行go程序test: 运行测试tool: 运行go提供的工具version: 显示go的版本vet: 运行go tool vet

5.2 build 和 run 命令

就像其他静态类型语言一样,要执行 go 程序,需要先编译,然后在执行产生的可执行文件。go build命令就是用来编译 go程序生成可执行文件的。但并不是所以的 go 程序都可以编译生成可执行文件的, 要生成可执行文件,go程序需要满足两个条件:

该go程序需要属于main包在main包中必须还得包含main函数

也就是说go程序的入口就是main.main, 即main包下的main函数,例子(test.go):

编译hello.go,然后运行可执行程序:

$ go run test.go # 将会生成可执行文件 test$ ./test # 运行可执行文件Hello, World!

上面就是 go build 的基本用法,另外如果使用 go build 编译的不是一个可执行程序,而是一个包,那么将不会生成可执行文件。

go run命令可以将上面两步并为一步执行(不会产生中间文件)。

$ go run test.goHello, World!

上面两个命令都是在开发中非常常用的。

此外 go clean 命令,可以用于将清除产生的可执行程序:

$ go clean # 不加参数,可以删除当前目录下的所有可执行文件$ go clean hello.go # 会删除对应的可执行文件

5.3 get 命令

这个命令同样也是很常用的,我们可以使用它来下载并安装第三方包, 使用方式:

go get src

从指定源上面下载或者更新指定的代码和依赖,并对他们进行编译和安装,例如我们想使用 beego 来开发web应用,我们首先就需要获取 beego:

go get /astaxie/beego

这条命令将会自动下载安装 beego 以及它的依赖,然后我们就可以使用下面的方式使用:

package mainimport "/astaxie/beego" # 这里需要使用 src 下的完整路径func main() {beego.Run()}

GoLand环境搭建

一 GoLand集成开发环境下载

IDE 下载地址:/go/download/#section=mac

IDE安装就是平常的傻瓜式安装,这里就不多说了。

二 使用GoLand

1、 双击运行安装完的GoLand,选择创建项目,并关联GOROOT(会自动关联)

2、在项目上点击右键,按图选择,如下,给文件命一个名字,如 test

3、在文件中写入如下代码:

4、在文件上右键,选择 Run go build test.go,就可以看到控制台打印出hello world!啦

5、也可以在Terminal窗口下输入go run test.go,就可以看到打印结果

6、或者输入go build test.go ,会在当前路径下生成一个可执行文件(test),继续输入 ./test ,即可执行该可执行文件

04-VS code配置Go环境

go 从入门到放弃完整教程目录(更有python、go、pytorch、tensorflow、爬虫、人工智能教学等着你):/nickchen121/p/11517502.html

更新、更全的《Go从入门到放弃》的更新网站,更有python、go、人工智能教学等着你:/nickchen121/p/11517502.html

VS Code是微软开源的一款编辑器,插件系统十分的丰富。本文就介绍了如何使用VS Code搭建Go语言开发环境。

一、VS Code配置Go语言开发环境

说在前面的话,Go语言是采用UTF8编码的,理论上使用任何文本编辑器都能做Go语言开发。大家可以根据自己的喜好自行选择。编辑器/IDE没有最好只有最适合。

我的百度云链接里面是go1.13版本的。不是这个版本都会报错。想用我发的文件,就需要在/dl这个网站找到go1.13的版本安装,否则会一直报错。

二、下载与安装

VS Code官方下载地址:/Download

三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。

双击下载好的安装文件,双击安装即可。

三、安装中文简体插件

点击左侧菜单栏最后一项管理扩展,在搜索框中输入chinese,选中结果列表第一项,点击install安装。

安装完毕后右下角会提示重启VS Code,重启之后你的VS Code就显示中文啦!

VSCode主界面介绍:

四、安装Go开发扩展

现在我们要为我们的VS Code编辑器安装Go扩展插件,让它支持Go语言开发。

五、变更编辑器主题

依次点击首选项->颜色主题会弹出如下窗口:

推荐类似Sublime Text风格的主题Monokai,和明亮风格的主题Light(Visual Studio)

接下来的演示示例就是在Light(Visual Studio)主题下截图。

六、安装Go语言开发工具包

在座Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。

Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框,如下图:

我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令

选中并会回车执行该命令(或者使用鼠标点击该命令)

然后点击“确定”按钮,进行安装。

会弹出如下输入窗口:

VS Code此时会下载并安装上图列出来的16个工具,但是由于国内的网络环境基本上都会出现安装失败,如下图各种FAILED:

有两种方法解决这个问题:

6.1 方法一:使用git下载源代码再安装

我们可以手动从github上下载工具,(执行此步骤前提需要你的电脑上已经安装了git)

第一步:现在自己的GOPATHsrc目录下创建/x目录

第二步:在终端/cmdcdGOPATH/src//x目录下

第三步:执行git clone /golang/tools.git tools命令

第四步:执行git clone /golang/lint.git命令

第五步:按下Ctrl/Command+Shift+P再次执行Go:Install/Update Tools命令,在弹出的窗口全选并点击确定,这一次的安装都会SUCCESSED了。

经过上面的步骤就可以安装成功了。

这个时候创建一个Go文件,就能正常使用代码提示、代码格式化等工具了。

6.2 方法二:下载已经编译好的可执行文件

如果上面的步骤执行失败了或者懒得一步一步执行,可以直接下载我已经编译好的可执行文件,拷贝到自己电脑上的GOROOT/bin目录下。

go-tools百度云下载链接,密码:vjx2。

**注意:**特别是Mac下需要给拷贝的这些文件赋予可执行的权限。

七、配置自动保存

依次点击首选项->设置,打开设置页面就能看到自动保存相关配置如图,可以根据自己的喜好选择自动保存的方式:

八、配置代码片段快捷键

还是按Ctrl/Command+Shift+P,按下图输入>snippets,选择命令并执行:

然后在弹出的窗口点击选择go选项:

然后弹出如下页面:

大家可以简单看下上面的注释,介绍了主要用法:

“这里放个名字”:{"prefix": "这个是快捷键","body": "这里是按快捷键插入的代码片段","description": "这里放提示信息的描述"}​​​```其中$0表示最终光标提留的位置。举个例子,我这里创建了两个快捷方式,一个是输入pln就会在编辑器中插入fmt.Println()代码;输入plf,就会插入fmt.Printf("")代码。{"println":{"prefix": "pln","body":"fmt.Println($0)","description": "println"},"printf":{"prefix": "plf","body": "fmt.Printf(\"$0\")","description": "printf"}}​​​```添加如上配置后,保存。我们打开一个go文件,测试一下效果:未完待续…

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
Go语言并发介绍

Go语言并发介绍

2018-08-28

1.Go语言介绍

1.Go语言介绍

2022-09-26

一 GO语言介绍

一 GO语言介绍

2024-05-08

go语言介绍

go语言介绍

2020-09-02