Golang环境配置与应用编译

微信公众号「后端进阶」,专一后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。
老司机倾囊相授,带你一路进阶,来不及解释了快上车!git

Go 语言如今是愈来愈火了,出如今各个领域中,称它为21世纪的 C 语言一点都不为过,并且 Go 语言是 2009 年才发布的新语言,能够说它的特性是彻底基于现代计算机来设计的,尤为它的看家本领 goroutine 协程,在高并发场景下使用简直不要太爽,很是适合写一些高性能中间件。github

如今互联网发展得很快,咱们也须要在空余时间培养第二技能,否则很快就会被互联网的发展潮流淘汰。而做为 Java 后端开发的我,早在 2017 年末的时候已经经过业余时间掌握了 Go 语言,而且还手写了一个微信支付 SDK 做为练手的开源项目,出乎意料地广受 GayHub 网友的欢迎,目前将近 200 star,是目前最受欢迎的 Go 语言版微信支付 SDK 之一:后端

也从侧面说明了如今 Go 语言生态还不是很成熟,但这也是一种潜力,而且我相信,Go语言是将来一大热门语言,所以 Go 语言能够说是后端开发者最好的第二技能选择之一。bash

它自带的命令诸如 go run、go build、go install 等,就能够编译运行 Go 应用了,这在 Java 中,想要更快速方便地进行编译,咱们还须要依赖一些第三方工具,如 maven 编译工具,Go 的这些命令就至关于一个 maven 了,甚至比 maven 简单多了,并且仍是原生支持,这篇文章主要是说一下 Go 的工做目录与编译的规则,初步体验一下 Go 的大道至简的魅力。微信

GOPATH

GOPATH 是 Go 命令依赖的一个路径,也是 Go 项目放置的地方,在类 unix 系统下设置 GOPATH:并发

export GOPATH=/Users/zhangchenghui/.go
复制代码

查看 Go 环境变量:app

go env
复制代码

gopath

$GOPATH 目录有三个约定俗成的目录,必定要完全理解:框架

  • src:存放源代码,也是 Go 项目源代码的存放地址;
  • pkg:编译后的生成的包,也就是 Go 的 .a 文件,这个后缀名的文件表明的是 Go 的一个包;
  • bin:编译后生成的可执行文件(只有导入 package main 包的文件编译后直接是可执行文件 )。

gopath

应用编译

在 GOPATH 的 src 建立一个项目:maven

cd $GOPATH/src
mkdir mypakage
cd mypakage
复制代码

新建 test.go:分布式

// $GOPATH/src/mypakage/test.go
package mypakage

import "fmt"

func Test() {
     fmt.Println("test~~~~~")
}
复制代码

Go 语言有个约定俗成的作法就是函数首字母大写至关于 Java 的 public 方法,小写至关于 Java 的 private 方法。

在该项目目录中执行 go install 或者在任意目录下执行 go install mypakage,请注意该文件的包 package mypakage,意味着编译后会在 pkg 目录生成一个包。

gopath

接下来咱们就能够引用这个包里面的方法啦,这和 maven 的 mvn clean install 一个道理。

在 src 目录中新建一个应用:

cd $GOPATH/src
mkdir myapp
cd myapp
复制代码

新建 main.go:

// $GOPATH/src/myapp/main.go
package main

import (
	"fmt"
  	"mypakage"
)

func main() {
  mypakage.Test()
  fmt.Println("hello, go")
}
复制代码

接下来就是要编译这个应用了,进入该应用目录,执行 go install,因为该应用直接导入的是pakage main 包,它是Go语言中惟一一个能够编译后直接生成可执行文件的包,所以会在 $GOPATH/bin 下生成一个可执行文件 myapp:

gopath

在任意路径下,执行:

myapp
复制代码

输出以下内容:

gopath

其实在该应用目录下也可执行 go build 命令进行编译,会在当前目录下生成可执行文件,而不会安装在 bin 目录下。

gopath

拉取远程包

Go 语言要如何获取远程包呢?在 Java 开发中,咱们我能够经过 maven 自动地从 maven 中央仓库中下载依赖到.m2本底仓库中,可是在 Go 开发中,咱们只须要使用 go get 指令就能够从远程拉取依赖包了:

go get github.com/astaxie/beego
复制代码

这条命令就会将源码下载到 src 目录中,并将源码编译后安装到 pkg 目录中:

gopath

所以,go get 至关于 git clone 源码下来,再执行 go install。

这里特别说明一下,go 1.12 已经发布了 go modules 做为官方的版本依赖管理工具,而我开源的微信支付 SDK 「wxpay」已经支持了该特性,后面也会单独跟你们讲解一下 go modules。

写在最后

若是大家也喜欢 Go 语言,能够给我留言,一块儿讨论学习,我会考虑在后续更新一系列关于 Go 语言的文章,与你们共同培养第二技能。

公众号「后端进阶」,专一后端技术分享!
相关文章
相关标签/搜索