文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的确定。能够微信搜索公众号「 后端技术学堂 」第一时间阅读(通常比博客早更新一到两篇)css
前面几周陆陆续续写了一些后端技术的文章,包括数据库、微服务、内存管理等等,我比较倾向于成体系的学习,因此数据库和微服务还有后续系列文章补充。linux
最近工做上比较多的 Golang 编程,如今不少互联网公司都在转向 Golang 开发,因此打算写一写有关 Go 语言学习的系列文章,目标是从 Go 基础到进阶输出一系列文章,沉淀下这些知识同时也给你们作参考,力求作到通俗易懂,即便你是 Golang
小白也能看懂,若是你是老手也能温故知新。golang
本文将要和你分享 linux 下安装 Golang 环境,而且讲解如何经过配置 VSCode 远程开发调试 Golang 程序。shell
你能够用系统自带的包管理工具好比 yum
或 apt-get
来安装Golang开发环境。不过,为了通用性,我选择经过源码的方式来安装和讲解,在官网下载源码,下载地址 https://golang.org/dl/数据库
我这里下载下来的源码包 go1.14.2.linux-amd64.tar.gz
放到远程 Linux 服务器目录下。执行如下命令安装到 /usr/local 目录。编程
tar -zxvf -C /usr/local/ `go1.14.2.linux-amd64.tar.gz`
工做空间是你Go项目的「工做目录」,挑选一个合适目录,执行下面操做:json
mkdir GoPath mkdir -p GoPath/src mkdir -p GoPath/bin mkdir -p GoPath/pkg
三个目录含义:后端
src: 源码路径(例如:.go、.c、.h、.s 等) pkg: 编译包时,生成的.a文件存放路径 bin: 编译生成的可执行文件路径
安装过程当中有这么几个环境变量须要配置,先来了解一下:服务器
GOROOT:Go的安装路径,也就是前面咱们解压到的目录 /usr/local/go
。微信
GOBIN:Go项目的二进制文件存放目录。
GOPATH:Go的工做空间。前面有介绍的工做空间目录。
在 /etc/profile
文件追加如下内容完成设置。
export GOROOT=/usr/local/go export GOPATH=/yourpath/GoPath # 设置你本身的GoPath路径 export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin # 加入到PATH环境变量 export PATH=$PATH:$GOPATH/bin
# source /etc/profile #当即生效
# go version #检查版本 # go version go1.14.2 linux/amd64 # 输出版本号
若是看到版本信息就表明安装成功了!
上面咱们在 Linux 环境下安装好了 Golang 开发环境,但我不想每次打开终端登陆服务器编写调试程序,怎么才能在本地PC开发调试Golang程序呢?
看过我上一篇Vscode远程开发的小伙伴应该能想到方法,咱们就要用Vscode搭建Golang远程开发环境。具体的远程开发配置能够查看个人另外一篇文章。
首先安装官方推荐的 Go 开发插件,以下,点他安装。
接着还会出现以下的提示,是由于缺乏其余 Go 开发相关插件,点 install all
全都装上就行。
编程界有个惯例,什么语言开始学习都是从 Hello World 开始。如今,咱们就用 Golang 编写第一个 HelloWorld
程序吧。
上代码:
package main // 全部Go程序从main包开始运行 import "fmt" // 导入fmt包 func main() { fmt.Print("hello world", " i am ready to go :)\n") fmt.Println("hello world", "i am ready to go :)") }
fmt
实现了相似 C++/C 语言的格式IO库功能。
Print
和 Println
均可用于打印输出,可是功能略有不一样。能够看到我在Print
函数中,对后一个字符串加了空格和换行符,这样两个打印出来的结果是相同的。
func Print(a ...interface{}) (n int, err error)
Print采用默认格式将其参数格式化并写入标准输出。若是两个相邻的参数都不是字符串,会在它们的输出之间添加空格。返回写入的字节数和遇到的任何错误。
func Println(a ...interface{}) (n int, err error)
Println采用默认格式将其参数格式化并写入标准输出。老是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。返回写入的字节数和遇到的任何错误。
在终端命令行源码所在目录输入go run
运行程序。
# go run HelloWorld.go //输出 hello world i am ready to go :) hello world i am ready to go :)
也能够先编译go build
获得可执行文件后再运行。
# go build HelloWorld.go # ls HelloWorld HelloWorld.go # ./HelloWorld hello world i am ready to go :) hello world i am ready to go :)
按F5
启动调试,编辑与调试控制台输出以下:
命令行参数能够经过os
包的 Args
函数获取,代码以下:
package main import ( "fmt" "os" "strconv" ) func main() { // 命令行参数获取,os.Args第一个参数是程序自身 fmt.Println(os.Args) for idx, args := range os.Args { fmt.Println("参数"+strconv.Itoa(idx)+":", args) } }
如下是带参数argv1 argv2 运行golang程序和输出。
# go run basic.go argv1 argv2 # 输出 [/tmp/go-build441686724/b001/exe/basic argv1 argv2] 参数0: /tmp/go-build441686724/b001/exe/basic 参数1: argv1 参数2: argv2
launch.json文件的 args
属性配置能够设置程序启动调试的参数。
设置以后,按F5
启动调试,就会在调试控制台输出配置的参数。
命令行参数能够经过os
包的 Getenv
函数获取,代码以下:
package main import ( "fmt" "os" ) func main() { // 获取环境变量 fmt.Println(os.Getenv("type"), os.Getenv("name"), os.Getenv("GOROOT")) }
launch.json
文件的 args
属性配置能够设置 VSCode 调试的 Golang 程序环境变量。
设置的格式是:name:vaule 形式,注意都是字符串。
终端的环境变量设置就是能够用 Linux 的 export
命令设置,以后就能够用 os.Getenv
函数读取。
好比咱们最初设置 GOROOT
环境变量的命令
export GOROOT=/usr/local/go
就能够用 os.Getenv("GOROOT")
读取,比较简单,这里就很少说了。
如今,你有了一个能够远程开发调试 Golang 的环境,赶忙去写个 hello world
体验一下吧!今天的分享就到这,下一篇文章讲解基础语法。
老规矩,感谢各位的阅读,文章的目的是分享对知识的理解,技术类文章我都会反复求证以求最大程度保证准确性,若文中出现明显纰漏也欢迎指出,咱们一块儿在探讨中学习。今天的技术分享就到这里,咱们下期再见。
原创不易,不想被白票,若是在我这有收获,就动动手指「点赞」和「转发」是对我持续创做的最大支持。
能够微信搜索公众号「 后端技术学堂 」回复「资料」「1024」有我给你准备的各类编程学习资料。文章每周持续更新,咱们下期见!