go语言学习之环境安装(一)

go语言介绍

go语言出身豪门,有IT界三位大佬合作开发。是一种C系语言。具有高并发的特性。性能优越。

go语言在云计算领域有着极大的市场空间,在云计算领域。明星项目,docker,eted, kubernetes,harbor皆使用go编写。go强大的网络编程,原生支持高并发。

go的优点

  • 可直接编译成机器码,不依赖其他库
  • 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高
  • 语言层面支持并发,这是Go语言的最大的特色,天生支持并发
  • 内置runtime,支持垃圾回收机制
  • 简单易学,有C语言的基因,Go语言有25个关键字,但是表达能力极强
  • 丰富的标准库,内置大量库,特别是网络库非常强大
  • 内置强大工具,使review变的简单,可以使代码格式一模一样
  • 跨平台编译,可以不依赖与系统信息
  • 内置C支持

go存在的不足

当然go相对其它语言也有很多的不足,可能最大的一点就是很多程序员入门时遇到的一个问题GOPATH,需要配置工作空间。

另一个大的不足之处就是第三方包的管理,虽然现在有一些方案,但都不十分完美。

多版本环境安装

go运行环境安装文章很多,在此介绍一种多版本管理的安装方式gvm.

gvm 是一个go语言多版本管理工具,可以方便的切换语言版本环境。

安装gvm

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)  

使用 GVM

$gvm
Usage: gvm [command]

Description:
  GVM is the Go Version Manager

Commands:
  version    - print the gvm version number
  get        - gets the latest code (for debugging)
  use        - select a go version to use (--default to set permanently)
  diff       - view changes to Go root
  help       - display this usage text
  implode    - completely remove gvm
  install    - install go versions
  uninstall  - uninstall go versions
  cross      - install go cross compilers
  linkthis   - link this directory into GOPATH
  list       - list installed go versions
  listall    - list available versions
  alias      - manage go version aliases
  pkgset     - manage go packages sets
  pkgenv     - edit the environment for a package set

GOPATH管理

在多项目环境下开发时,常设置多个workspace,通过gvm可以动态的切换环境变量。

  • 创建pkgset
 gvm pkgset create dev1 

``



- 切换到该配置下

gvm pkgset use dev1

- 设置GOPATH

gvm pkgenv dev1

会显示dev1的相关环境变量的配置信息,修改其中的GOPATH和PATH的环境变量的信息,将要设置的workspace的工作目录的路径添加到对应配置信息的前边。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

海量数据迁移之数据加载流程(r4笔记第88天)

在之前的博文中分享了关于数据抽取流程的一些思路,整体来说,数据的抽取是辅助,数据的加载是关键。加载的过程中每一步需要格外关注,稍有偏差就可能造成数据的损坏或者丢...

36530
来自专栏程序你好

消息通知子系统用户需求

27840
来自专栏杨建荣的学习笔记

你的备库做好准备了吗(r7笔记第78天)

这篇文章计划了一段时间,本来想写篇心情文字,还是留到周末再放飞心情吧。 今天的内容是关于数据库的备库的思考,当然我们可以自己问自己,我们的备库准备工作做好了吗?...

38370
来自专栏逸鹏说道

TypeLoadException: 找不到 Windows 运行时类型“Xaml.Controls.Binding

奇怪的问题,我以为是我不小心添加了什么标签导致的,后来发现。。。坑爹,把项目名字改一下,然后移除掉,接着再加载一下就可以了。。。。。。。崩溃了,,,,事实证明=...

25540
来自专栏FreeBuf

远丰集团旗下CMS疑有官方后门

起始 这个后门是在去年的某次渗透测试中发现的,但是因为时间点比较敏感,客户也未修复,就还未披露。 他们在中央的网站都留了后门,银行的也留,影响了一大批人,真是官...

49550
来自专栏码神联盟

架构 | 大型网站分布式高并发架构设计汇总

本文多数内容为小编精心总结,呕心沥血完成,切勿抄袭沿用。 参考文献《架构知识》、《深入理解java》 ---- 章节目录: 前言 前端架构 应用层架构 服务层架...

79980
来自专栏程序你好

微服务通信中的设计模式

我在上一篇文章中,我谈到了微服务中涉及到的设计模式。现在,我想深更深入介绍微服务架构中最重要的设计模式:微服务之间的数据通讯。当我们用于开发独立应用程序时通讯是...

27320
来自专栏架构师小秘圈

亿级浏览型网站静态化架构演变

作者徐昭,花名长恭,主要负责天猫详情系统的架构优化工作。毕业于浙江大学计算机专业,热爱Java Web技术,多关注服务端性能优化,热衷开源技术的研究和分享。 在...

39150
来自专栏FreeBuf

成人网站PornHub跨站脚本(XSS)漏洞挖掘记

写在前面的话 当PornHub公布了他们的公开漏洞奖励计划之后,我敢肯定的是该网站之前存在的一些低级漏洞或比较容易发现的漏洞都已经被别人挖出来了。 但是当我开...

1.6K80
来自专栏james大数据架构

微信公众号第三方平台开发概况

  首先要知道为什么要用公众号第三方平台,公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三...

81750

扫码关注云+社区

领取腾讯云代金券