Golang 环境配置与应用编译

栏目: Go · 发布时间: 5年前

内容简介: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 之一:

Golang 环境配置与应用编译

也从侧面说明了现在 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

Golang 环境配置与应用编译

$GOPATH 目录有三个约定俗成的目录,一定要彻底理解:

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

Golang 环境配置与应用编译

应用编译

在 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 目录生成一个包。

Golang 环境配置与应用编译

接下来我们就可以引用这个包里面的方法啦,这和 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:

Golang 环境配置与应用编译

在任意路径下,执行:

myapp

输出如下内容:

Golang 环境配置与应用编译

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

Golang 环境配置与应用编译

拉取远程包

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

go get github.com/astaxie/beego

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

Golang 环境配置与应用编译

因此,go get 相当于 git clone 源码下来,再执行 go install。

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

写在最后

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

推荐阅读:

由for update引发的血案

实战|如何自定义SpringBoot Starter?

Java并发之AQS源码分析(二)

Java并发之AQS源码分析(一)

Golang 环境配置与应用编译

长按可以订阅

点个在看

让我知道有多少人想学 Go

Golang 环境配置与应用编译


以上所述就是小编给大家介绍的《Golang 环境配置与应用编译》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

剑指Offer

剑指Offer

何海涛 / 电子工业出版社 / 2014-6-1 / CNY 55.00

《剑指Offer——名企面试官精讲典型编程题(纪念版)》是为纪念本书英文版全球发行而推出的特殊版本,在原版基础上新增大量本书英文版中的精选题目,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。全书分为8章,主要包括面试流程:讨论面试每一环节需要注意的问题;面试需要的基础知识:从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量代码:讨论影响代码质量的3个要素(规范性......一起来看看 《剑指Offer》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具