工欲善其事,必先利其器!在学习和使用 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..tar.gz

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

$ cd /opt/GoLand-2018.1./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":,"external":}

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

总结

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

Golang 入门 : 打造开发环境的更多相关文章

  1. Golang入门及开发环境配置

    Go语言诞生背景 计算机硬件更新频繁,主流编程语言无法发挥多核多CPU的性能 软件系统复杂度不断变高,缺乏简洁高效的编程语言 C/C++运行速度快,但编译速度慢 Go语言特点 静态类型开发语言 静态: ...

  2. PHP入门教程-开发环境搭建

    1.PHP简介: PHP是能让你生成动态网页的工具之一.PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP. 2.学习需要基础: a.HTML b.Ja ...

  3. Spring框架入门之开发环境搭建(MyEclipse2017平台)

    基于MyEclipse2017平台搭建Spring开发环境,这里MyEclipse已将Spring集成好了,我们只需要做一简单配置即可 一.环境配置 OS:Windows7 64位 IDE工具:MyE ...

  4. spring boot + vue + element-ui全栈开发入门——windows开发环境

     一.node.js开发环境 windows系统,去网站https://nodejs.org/en/download/,下载对应的安装程序,并安装Windows Installer (.msi) 接下 ...

  5. IDEA里如何安装Python插件打造开发环境(图文详解)

    前言 python是一种功能强大和适用面很广的开发语言,在大数据应用和机器学习日益流行的年代,python凭借其简洁.易用和可扩展性获得很多用户的支持,近年来使用率高速增长.python环境下,集成了 ...

  6. springboot 入门2 开发环境与生产环境采用不同配置问题

    目开发中我们通常有两套配置信息  分别配置了我们的数据源信息等? 那么我们要如何不通过修改配置文件大量配置来实现简单的修改与配置来实现相关配置加载功能 首先springboot 有一个核心的配置文件a ...

  7. Ubuntu上源码安装golang并设置开发环境

    安装go #wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz #tar -xzf go1.10.3.linux-amd64.tar.g ...

  8. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

  9. JavaWeb零基础入门-02 开发环境安装

    大家好!我又来了,上一篇我们讲了一些基础概念:Html.Web服务器.数据库.Http和JavaWeb三大组件,它们是什么,有什么作用,都有了初步的了解.接下来我们进入学习JavaWeb的第一步,开发 ...

随机推荐

  1. 再谈AbstractQueuedSynchronizer3:基于AbstractQueuedSynchronizer的并发类实现

    公平模式ReentrantLock实现原理 前面的文章研究了AbstractQueuedSynchronizer的独占锁和共享锁,有了前两篇文章的基础,就可以乘胜追击,看一下基于AbstractQue ...

  2. 了解一下RabbitMQ

    RabbitMQ概述 RabbitMQ是遵从AMQP协议的 通信协议都设计到报文交互,换句话说RabbitMQ就是AMQP协议的Erlang的实现. AMQP说到底还是一个通信协议从low-level ...

  3. Pandas学习笔记

    本学习笔记来自于莫烦Python,原视频链接 一.Pandas基本介绍和使用 Series数据结构:索引在左,值在右 import pandas as pd import numpy as np s ...

  4. Redis in .NET Core 入门:(1) 安装和主要功能简介

    Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 安装Redis 我很少在开发机中直接装各种数据库,我一般使用Docker,针对 ...

  5. qml demo分析(maroon-小游戏)

    1.效果展示 这篇文章我还是分析一个qt源码中的qml程序,程序运行效果如下图所示. 图1  游戏开始 图2  游戏中 2.源码分析 这个游戏的源码文件比较多,为了能更清楚的了解整个代码,我先整体分析 ...

  6. 『集群』004 Slithice 集群分布式(多个客户端,基于中央服务器的集群服务)

    Slithice 集群分布式(多个客户端,基于中央服务器的多个集群服务端) 案例Demo展示: 集群架构图 如下: 如上图,上图 展示了 这个集群 的 结构: >一个中央服务器(可以有多个),负 ...

  7. Jvm垃圾回收器(终结篇)

    知识回顾: 第一篇<Jvm垃圾回收器(基础篇)>主要讲述了判断对象的生死?两种基础判断对象生死的算法.引用计数法.可达性分析算法,方法区的回收.在第二篇<Jvm垃圾回收器(算法篇)& ...

  8. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.3版本全新发布

    1.RDIFramework.NET框架介绍 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人快速开发系统提供了强大的支持,开发人员不需要开发系统的基础功能和 ...

  9. MySQL优化小建议

    背景 "那啥,你过来一下!" "怎么了?我代码都单元测试了的,没出问题啊!"我一脸懵逼跑到运维大佬旁边. "你看看!你看看!多少条报警,赶快优化一下! ...

  10. Java基础之 反射是什么?

    什么是反射,反射能干嘛? 反射是:指程序可以访问.检测和修改它本身状态或行为的一种能力 反射是一种能力,所以给的定义就是说明了它能干嘛. 我们平时用反射主要做: 获取类型的相关信息 动态调用方法 动态 ...