内容简介:Go 语言现在是越来越火了,出现在各个领域中,称它为 21 世纪的 C 语言一点都不为过,而且 Go 语言是 2009 年才发布的新语言,可以说它的特性是完全基于现代计算机来设计的,尤其是它的看家本领 goroutine 协程,在高并发场景下使用简直不要太爽,非常适合写一些高性能中间件。而作为 Java 后端开发者的我,早在 2017 年底的时候已经通过业余时间掌握了 Go 语言,并且还手写了一个微信支付 SDK 作为练手的开源项目,出乎意料地广受 GayHub 网友的欢迎,目前将近 200 star,是目
Go 语言现在是越来越火了,出现在各个领域中,称它为 21 世纪的 C 语言一点都不为过,而且 Go 语言是 2009 年才发布的新语言,可以说它的特性是完全基于现代计算机来设计的,尤其是它的看家本领 goroutine 协程,在高并发场景下使用简直不要太爽,非常适合写一些高性能中间件。
而作为 Java 后端开发者的我,早在 2017 年底的时候已经通过业余时间掌握了 Go 语言,并且还手写了一个微信支付 SDK 作为练手的开源项目,出乎意料地广受 GayHub 网友的欢迎,目前将近 200 star,是目前最受欢迎的 Go 语言版微信支付 SDK 之一:
也从侧面说明了现在 Go 语言生态还不是很成熟,但这也是一种潜力,并且我相信,Go 语言是会未来一大热门语言,因此 Go 语言可以说是后端开发者最好的第二技能选择之一。
它自带的命令诸如 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 环境变量:
go env
$GOPATH 目录有三个约定俗成的目录,一定要彻底理解:
• src:存放源代码,也是 Go 项目源代码的存放地址; • pkg:编译后的生成的包,也就是 Go 的 .a 文件,这个后缀名的文件代表的是 Go 的一个包; • bin:编译后生成的可执行文件( 只有导入 package main 包的文件编译后直接是可执行文件 )。
应用编译
在 GOPATH 的 src 创建一个项目:
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 目录生成一个包。
接下来我们就可以引用这个包里面的方法啦,这和 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:
在任意路径下,执行:
myapp
输出如下内容:
其实在该应用目录下也可执行 go build 命令进行编译,会在当前目录下生成可执行文件,而不会安装在 bin 目录下。
拉取远程包
Go 语言要如何获取远程包呢?在 Java 开发中,我们我可以通过 Maven 自动地从 Maven 中央仓库中下载依赖到.m2本底仓库中,但是在 Go 开发中,我们只需要使用 go get 指令就可以从远程拉取依赖包了:
go get github.com/astaxie/beego
这条命令就会将源码下载到 src 目录中,并将源码编译后安装到 pkg 目录中:
因此,go get 相当于 git clone 源码下来,再执行 go install。
这里特别说明一下,go 1.11 已经发布了 go modules 作为官方的版本依赖管理工具,而我开源的 微信支付 SDK 「wxpay」已经支持了该特性, 后面也会单独跟大家讲解一下 go modules。
写在最后
如果你们也喜欢 Go 语言,可以给我留言,一起讨论学习,我会考虑在后续更新一系列关于 Go 语言的文章,与大家共同培养第二技能。
推荐阅读:
长按可以订阅
点个在看
让我知道有多少人想学 Go
以上所述就是小编给大家介绍的《Golang 环境配置与应用编译》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- vscode Golang 开发环境配置(含插件编译)
- linux-golang编译器安装与配置
- Visual Studio Code中配置TypeScript自动编译
- Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题)
- Vue-Cli3多页面配置与编译时构建优化
- 01-05 NDK 开发必知必会1⃣️CC++编译器配置
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。