如何搭建go语言开发环境

这篇文章主要为大家分享搭建go语言开发环境的方法。文中还介绍了搭建golang开发环境技巧和golang版本的选择,希望大家通过这篇文章能有所收获。

搭建golang环境

1.到golang下载地址下载对应环境的安装包或者源码,若是Linux环境的话,将源码包下载解压之后,放至/usr/local/(实际上放至合适位置即可,只要把它添加进PATH就行),如:

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

2.配置GOPATH、GOROOT,这里可能需要解释一下,对于新手来说,肯定不熟悉这两个环境变量的意义。

GOROOT:golang的安装目录。

GOPATH:go的工作空间,在GOPATH下会有三个目录:src,bin,pkg。

src:存放源码(在不设置go mod的情况下,go get的包放至这里,你自己的项目源码也可以放在这里);

bin:编译后的可执行文件放置的位置,如果在你项目go install,生成的可执行文件会放在此处;

pkg:存放编译时产生的文件(.a文件)并根据平台进行归档,比如,windows64下产生的文件放在windows_amd64目录下,通常情况下,我们不会太关心这些文件。不过在go module包管理方式下,pkg目录变得受人关注了, 依赖的第三方包被下载到了$GOPATH/pkg/mod路径下,而不是src文件夹。

3.下载一个合适的IDE,我个人比较喜欢用Goland,选择一个适合自己的IDE很重要,也有人喜欢vs code,这没有关系,只要自己使用顺手就行。

4.简单写段代码测试一下,go的安装情况如何,在$GOPATH/src下创建一个目录作为测试项目,创建一个main.go文件,代码如下:

package main

import (
    "fmt"
)

func main() {
    fmt.Print("Hello world!")
}

接着在项目根目录下go run main.go或者像我一样在IDE里面直接点击一下运行按钮即可。可以说搭建一个golang环境至此已经结束,就这么简单?就这么简单,但还有其他事情可以继续说下

实用的golang开发环境技巧

1.利用虚拟机共享目录来应对不同环境

有这样一个场景:有个go项目,它的打包方式是make,但是我们想在Windows下编写代码,在Windows下正常情况下没有make工具,而Linux有。当然有人会提出,那就在Windows下安装相应的make工具就好了,的确如此,这样就解决问题了。我接下来所要讲的技巧权当做一种另外的解题思路。
首先,安装一个Linux虚拟机,创建好之后设置共享目录

在我的Windows系统的D盘下有一个share目录,我将它共享到了虚拟机里面,并在Linux中为它创建了一个软连接,这样方便我查看和修改文件。share目录下的go目录即为我的GOPATH,我将虚拟机中的GOPATH设置成了同一个路径,这样子就可以在两个系统中共享同一份下载的源码。好了,现在我们可以在Windows下打代码,在Linux下编译了(有个Linux环境莫名的有安全感)。

2.利用docker和docker-compose进行开发

能够写一段简单的打印“hello world”的代码就证明你的开发环境搭建完毕了吗?很多时候,初学者看到的其他golang入门文章到此就结束了,但我觉得还有些可以继续进步的地方。很多项目会用到mysql、reids等,下面我会用docker和docker-compose为我们的项目提供支持。我的操作思路是在虚拟机安装docker和docker-compose,并安装mysql等,然后将端口转发出来。
① 在虚拟机中安装docker和docker-compose;
② 将创建工作目录,在该目录下创建一个docker-compose.yaml,接着运行如下:

version: '3'
services:
  mysql:
    container_name: mysql
    image: mysql:5.6
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_ROOT_HOST: "%"
    volumes:
      - "./data:/var/lib/mysql"           # 挂载数据目录
      - "./config:/etc/mysql/conf.d"      # 挂载配置文件目录
$ docker-compose up -d

③ 将对应端口转发出来:

④ 在Windows下用熟手的工具去操作,可以用navicat等工具,我个人比较喜欢都在IDE里执行:

如此一来,我们就可以利用docker和docker-compose创建一些我们需要的组件,并且在Windows和Linux下都连接成功。这么做有一些好处,我们可以在Windows下尽情的编码和测试,在Linux下去做编译和打包工作。不过,我并没有很详细地将这其中的操作过程写出来,这篇文章里主要提供一些思路,如有人有兴趣,我以后会写一篇跟工具有关的文章。

3.golang版本的选择

我在看官网的文档时,发现了一个有趣的东西,貌似平时没有很多人去关注。

Installing extra Go versions

It may be useful to have multiple Go versions installed on the same machine, for example, to ensure that a package's tests pass on multiple Go versions. Once you have one Go version installed, you can install another (such as 1.10.7) as follows:

$ go get golang.org/dl/go1.10.7
$ go1.10.7 download

The newly downloaded version can be used like go:

$ go1.10.7 version
go version go1.10.7 linux/amd64

All Go versions available via this method are listed on the download page. You can find where each of these extra Go versions is installed by looking at its GOROOT; for example, go1.10.7 env GOROOT. To uninstall a downloaded version, just remove its GOROOT directory and the goX.Y.Z binary.

这段文本是在说你可以通过go get的方式去安装其他的go版本,这种方式也比较简单。但应该很少人会有这样的需求了吧,因为一般来讲,go的版本安装最新的就行了,go的兼容做得很好,不会因为你的代码是几年之前写的就运行不起来。

看完这篇文章,你们学会搭建go语言开发环境的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注北单博客行业资讯频道,感谢各位的阅读。

原创文章,作者:DDUDL,如若转载,请注明出处:https://www.beidanyezhu.com/a/26186.html

(0)
DDUDL的头像DDUDL
上一篇 2024-12-17 14:10:17
下一篇 2025-01-01

相关推荐

  • 北大环境学院倪晋仁团队(北京大学环境科学与工程学院)

    时值2021年6月5日“世界环境日”到来之际,中国科协生态环境产学联合体向社会发布了“2020年度中国生态环境十大科技进展”。北京大学环境科学与工程学院倪晋仁院士团队的科研成果“黄…

  • Go语言有哪些优势

    Go语言有优势:1、学习曲线容易;2、开发效率和运行效率高;3、Go语言可以说是开发效率和运行效率二者的完美融合,天生的并发编程支持;4、Go语言拥有强大的编译检查、严格的编码规范…

    2025-01-05
  • go语言导包时“.”和“_”有什么区别

    区别:“_”操作其实只是引入该包;使用“_”操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其init()函数。“.”操作的含义就是这个包导入之后在你调用这个包…

    2025-01-05
  • go语言中run与build命令有哪些区别

    区别:“go run”命令可以编译并直接运行程序,但不会产生exe文件,运行速度也相应较慢;“go build”命令用于测试编译包,主要检查是否会有编译错误,会产生exe文件,运行…

    2025-01-05
  • go语言中普通函数与方法有什么区别

    区别:对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然;对于方法,接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。 Go语言中普通函数与…

  • python语言和go语言哪个比较好

    Python和Go都是用于编写Web应用程序的强大的高级编程语言,它们之间有什么区别吗?下面本篇文章就来带大家认识一下Python和Go语言。 Go语言是什么? Go是一种通用编程…

  • Go语言结构体是什么

    这篇文章给大家分享的是有关Go语言结构体是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 Go 语言结构体 Go 语言中数组可以存储同一类型的数据,…

  • go语言如何从结构体中获取某个字段的值

    这篇文章主要介绍go语言如何从结构体中获取某个字段的值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! Go 语言提供了 user.Name 语法,来从 us…

  • go与python哪个比较容易点

    相比于Python的40个特性,Go只有31个,可以说Go在语言设计上是相当克制的。比如,它没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没…

  • go语言有哪些优点

    go语言的优点:1、可直接编译成机器码,不依赖其他库;2、静态类型语言,但是有动态语言的感觉,写起来的效率很高;3、语言层面支持并发;4、内置runtime,支持垃圾回收;5、简单…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部