golang ide 环境搭建_Golang 入门 : 打造开发环境

工欲善其事,必先利其器!在学习和使用 Golang 时如果有一款得心应手的 IDE,相信一定可以事半功倍。虽然很多 IDE 都提供了对 Golang 的支持,但真正好用的没几个。VSCode 算是不错的一个,但比起收费的 GoLand 还有些差距。本文结合 Golang 和 GoLand 的安装介绍如何构建一个基本的 go 语言开发环境。文中演示所用环境为 Ubuntu 18.04 desktop。

安装 Golang

从 Golang 的官网下载 Linux 版本的安装包,笔者下载到的最新的稳定版为 1.10.1。下载完成后检查一下完整性:

$ sha256sum go1.10.1.linux-amd64.tar.gz

与下载页面中的 Checksum 核对无误后进入下面的安装步骤:

解压缩安装包

配置 PATH 变量

运行 hello world

解压缩安装包

一般情况下我们会把 go 语言相关的工具安装在 /usr/local 目录下,当然你可以选择其它的目录。这里我们就选择 /usr/local 目录进行安装(其实就是个解压缩操作):

$ sudo tar -C /usr/local -xf go1.10.1.linux-amd64.tar.gz

解压缩后安装也差不多就完成了,具体的目录为 /usr/local/go,目录下的内容如下:

配置 PATH 变量

和 Linux 下的大多数应用程序一样,我们得为安装的 go 语言相关的程序配置 PATH 环境变量。具体做法就是把 /usr/local/go/bin 这个路径添加到 PATH 变量中:

export PATH=$PATH:/usr/local/go/bin

可以在不同的位置添加环境变量,比如 /etc/profile 或 $HOME/.profile 等。不同之处是 /etc/profile 中的配置是共享给主机上的所有用户的,而 $HOME/.profile 中的配置只对当前用户起作用。笔者选择在 /etc/profile 中添加 PATH 变量的配置信息:

$ sudo vim /etc/profile

把上面的 export 语句添加到文件的最后一行:

保存该文本并退出登录,然后重新登录一次系统。执行下面的命令查看 PATH 变量的内容:

$ echo $PATH | grep go

看到 PATH 变量的输出中包含 /usr/local/go/bin 路径就说明 PATH 变量已经设置成功。也就是说,无论当前路径在哪里都可以直接执行 go 命令了:

$ go

其实到这里我们已经完成了 go 语言开发环境的安装。下面我们来运行一个 hello world 程序。

运行 hello world

在 go 语言的开发环境中有工作区的(即 workspace)概念,你必须设置一个工作区,然后按照约定的目录等规则进行开发工作。如果我们没有设置工作区,go 语言的开发环境会认为我们在使用默认的工作区,即 $HOME/go 目录。当然你可以自己动手通过 GOPATH 环境变量设置一个更符合你个人习惯的目录作为工作区,这里我们使用默认的目录。

按照约定,你的程序代码需要放置在工作区下的 src 目录下,所以在写代码前我们需要为我们的程序创建一个存放代码的目录:

$ mkdir -p ~/go/src/hello && cd $_

go 语言代码文件的后缀为 .go,因此我们在 hello 目录下创建名为 hello.go 的源代码文件,并编辑其内容如下:

package main

import"fmt"func main() {fmt.Printf("hello, world\n")

}

保存后执行下面的构建命令:

$ go build

这会在当前目录生成一个名为 hello 的可以执行文件:

执行 hello 程序:

$ ./hello

输出的 "hello, world" 字符串证明我们安装的 go 开发环境是能够正常工作的!

如果我们把 go build 命令换成 go install 命令呢?试试看:

$ go install

执行后当前目录中的 hello 可执行文件消失了,原来它被安装到了 ~/go/bin 目录下:

原来 go install 命令的作用就是在编译完成后把程序安装到工作区中的 bin 目录下。 在 go 语言的开发中,还有很多类似的约定,比如你引用的包默认会被安装在工作区中的 pkg 目录下,单元测试命令只认为以 _test.go 结尾的文件是测试文件等。不要困惑也不要惊讶,这就是 go 语言的设计理念,慢慢熟悉吧!

安装 GoLand IDE

从 jetbrains 官网下载最新的 GoLand 安装包,同样选择 Linux 版本,笔者下载到的版本为 goland-2018.1.2.tar.gz。下载完成后检查一下完整性(笔者下载的版本为 goland-2018.1.2.tar.gz):

$ sha256sum goland-2018.1.2.tar.gz

与下载页面中的 Checksum 核对无误后进入下面的安装步骤:

解压缩安装包

执行安装脚本

添加到 favorite bar

Run a demo

解压缩安装包

按照 GoLand 官方文档的建议,把安装包解压缩到 /opt 目录:

$ sudo tar -C /opt -xf goland-2018.1.2.tar.gz

执行安装脚本

进入解压缩的目录下的 bin 目录中,然后执行 goland.sh 脚本:

$ cd /opt/GoLand-2018.1.2/bin/$ ./goland.sh //(此处不需要 sudo)

在安装过程中需要一些 UI 交互,主要是确认用户协议和输入 license 信息(建议购买正版软件)。需要注意的是在安装完成后创建或打开项目前,请在 "Configure" 中选择 "Create Desktop Entry":

然后选择 New Project 创建一个名为 hrefcounter 的 demo 工程,并选择 Go 1.10.1 作为 SDK。

添加到 favorite bar

先关闭 GoLand IDE,为了今后能够方便的打开 GoLand,我们需要把它的图标添加到 Favorite bar 上。具体做法是,点击窗口左下角的 "Show Applications" 按钮,然后找到 GoLand 的桌面图标,右键该图标并选择 "Add to Favorites":

然后就可以通过点击 Favorite bar 上的图标来启动 GoLand 了:

Run a demo

点击 Favorite bar 上的 GoLand 图标启动 GoLand IDE,打开我们刚才创建的 hrefcounter 项目。在项目的根目录下创建 app.go 文件,把这里的代码拷贝到 app.go 文件中并保存。然后按 Alt + F12 快捷键打开一个 GoLand 中的终端,并执行下面命令:

$ go get -d -v golang.org/x/net/html

上面的命令执行完成后,在按 Alt + Shift + F10 快捷键,并选择 "go build app.go" 开始执行程序:

该程序本身很简单,就是统计博客园主页上的链接数:

{"internal":143,"external":36}

如果返回类似上面的结果,说明程序执行完成,并成功返回,同时您的 Golang 开发环境也已经打造完成了!

总结

构建一个开发环境是非常简单的事情,难的是接下来一步一个脚印的学习和使用 Golang。对 Golang 感兴趣的同学们,接下来和笔者一起开启 Golang 的学习之旅吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 6 数组拷贝性能对比

本文来对比多个不同的方法进行数组拷贝,和测试其性能测试性能必须采用基准(标准)性能测试方法,否则测试结果不可信。在 dotnet 里面,可以采用 BenchmarkDotNet 进行性能测试。详细请看 C# 标准性能测试拷贝某个数组的从…

python win32ui选取文件夹_最全 Python 算法实现资源汇总!

整理 | Rachel责编 | Jane出品 | Python大本营(ID:pythonnews)【导语】数据结构与算法是所有人都要学习的基础课程,自己写算法的过程可以帮助我们更好地理解算法思路,不要轻视每一个算法,一些虽然看似容易,但可能有很多…

Openfiler + Redhat 5.4 Oracle 11gR2 RAC 安装文档

Oracle 11gR2 RAC 的安装。 这个实验采用的架构: 虚拟机VMServer 2.0 REDHAT 5.4 Oracle 11gR2openfiler存储 DNS server (scan),openfiler通过iscsi 连接到虚拟机上,作为共享设备。 参考Oracle 官方文档: 在 Oracle Enterpris…

兄弟,就你这智商就别出轨了吧?

1 这智商就别出轨了吧(没有聪明人就能出轨的意思)▼2 “俗话说得好”上一句是什么?▼3 这是什么诡异的老年运动?▼4 搞不懂时尚趋势在哪里.....▼5 聚餐的时候千万别拿着包去厕所▼6 一看就会一学就废▼7 聪明的狗子能有多…

【CSS基础】实现 div 里的内容垂直水平居中

方案一: 所有内容垂直水平居中 兼容性:IE8。 条件:内容宽度和高度可以未知,可以是多行文字、图片、div。 描述:使用table-cell vertical-align , html代码见文末。 .centerDiv {width: 800px;height: 350p…

一些有意思的算法代码[转载]

转载自:http://coolshell.cn/articles/6010.html Keith Schwarz是一个斯坦福大学计算机科学系的讲师。他对编程充满了热情。他的主页上他自己正在实现各种各样的有意思的算法和数据结构,http://www.keithschwarz.com/interesting/, 目前这个网…

python web前端开发面试_面试前端,听听别人怎么说!

分享一个人的面试经验:一年半经验,百度、有赞、阿里面试总结前言人家都说,前端需要每年定期出来面面试,衡量一下自己当前的技术水平以及价值,本人17年7月份,毕业到现在都没出来试过,也没很想换工…

requestmapping注解访问404_【框架】127:几个非常重要的注解

今天是刘小爱自学Java的第127天。感谢你的观看,谢谢你。今天的知识点有点多,有点记不过来了。学习内容安排如下:使用注解优化昨天写的springMVC入门程序。映射路径各种风格的学习,也就对应了注解RequestMapping中的参数。各种类型…

Dapr + .NET Core实战(二) 服务调用

服务调用是什么在分布式应用程序中的服务之间进行调用会涉及到许多挑战。例如:维护其他服务的地址。如何安全地调用服务。在发生短暂的 暂时性错误 时如何处理重试。分布式应用程序调用链路追踪。服务调用构建块通过使用 Dapr 挎斗作为服务的 反向代理 来解决这些难…

华为新员工入职时信息安全保密手册

一、新员工入职信息安全须知 新员工入职后,在信息安全方面有哪些注意事项? 接受“信息安全与保密意识”培训; 每年应至少参加一次信息安全网上考试; 办理员工卡; 签署劳动合同(含保密职责)&…

第五周项目2-对象作为数据成员

回想Engineer类的数据成员,有眼镜、背包等。某Engineer的眼镜、背包,是Glass、Bag类的对象。类中的数据成员,其类型可以是简单类型,也可以是类。通过这种方式,将某些类组合到另外的类中,当作其中的一个“部…

谷歌排名第一的编程语言,死磕它这两点,小白也能学的会!不信你看!

全世界只有3.14 % 的人关注了爆炸吧知识谷歌排名第一的编程语言时什么?毫无疑问:肯定是 Python。也难怪,作为大数据时代和人工智能时代的必备语言,Python 的优点太多了,语言简洁、易学、开发效率高、可移植性强......另…

android主动显示流程,Activity加载显示基本流程

本文章是基于Android源码6.0讲解Activity加载显示基本流程首先上一张图给大家一个直观的了解首先一个布局页面的加载是在Activity中的setContentView(R.layout.res)开始;我们就从Acitvity源码中的setContentView方法入手public void setContentView(LayoutRes int layoutResID)…

VIM之Project 项目管理工具

VIM是Linux和Unix下常用的文本编辑工具,在编写代码和阅读代码中经常使用。但VIM进行代码项目管理时,没有IDE集成开发工具方便,现在提供一个VIM插件Project,可以对代码项目进行简单的集中管理一、 下载安装1、 在 Vim 网站上下载最…

vue数组刷新_Vue数组更新方法

Vue的核心是数据与视图的双向绑定,当我们修改数组时,Vue会检测到数据变化,所以用v-for渲染的视图也会立即更新。Vue包含了一组观察数组变异的方法,使用他们改变数组也会触发视图更新。push()pop()shift()unshift()splice()sort()r…

python提供什么机制处理程序运行错误_浅谈Python异常处理机制

异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮。 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算程序没有错误,你…

WPF DataGrid 通过自定义表头模拟首行固定

WPF DataGrid 通过自定义表头模拟首行固定独立观察员 2021 年 9 月 25 日最近工作中要在 WPF 中做个表格,自然首选就是 DataGrid 控件了。问题是,UI 设计的表格是在首行有一个新增按钮,那一行样式和其它数据行是一样的,就在表头下…

python和C语言分别实现插入排序

python语言代码:代码1 defInsertSort(numbers,n):2 fori inrange(1,n):3 j i-14 tem numbers[i]5 whilenumbers[j]>tem andj>0:6 numbers[j1] numbers[j]7 j -18 else:9 numbers[j1] tem10 print"Onthe sort:",numbers11 12 a [9,8,7,6,5,4,3,2,1,0…

Windows用户安全小技巧

本文适用于具有管理员用户和标准用户的所有Windows系统,如Windows 2000以上的操作系统,UAC是Windows Vista以上版本的具有功能。新安装的Windows系统或者新购买的含有Windows系统计算机一开始都需要安装许多软件并需要设置较多的含有Windows安全或用户控…

根据url获取html源码,通过URL访问和获取html源代码

Uniform Resource Locator ,在Internet的WWW服务程序上用于指定信息位置的表示方法指定互联网或本地上(web服务中)的文件、对象资源 等,或者说它相当于一个互联网上资源的一个指针协议 主机 路径 资源http://www.itfuture.org/forum/index.jsp …