Go介绍

   Go语言被誉为21世纪的C语言,由Google公司开发,天生对高并发有着优秀的支持。并且语法极度简洁,关键字仅有25个。

   所以使用Go语言时你不用担心自己写的和大神写的有着天差地别,Go语言开发者所书写的代码大家基本都是能看得懂的。

   值得一提的是Go的跨平台性,Go语言跨平台性强到令人发指,你甚至可以再windows下进行开发然后编译出linux下的二进制文件进行部署。

Go安装

   以下是Go语言的官网,点击下载进行安装即可。

  

Windows

   windows平台下的安装十分简单。当我们下载完安装程序后,双击打开进行安装即可。

  

  

  

  

  

Linux

   如果你习惯了在Linux下进行编码,则可以安装LinuxGolang

   当然,基于Golang的跨平台特性,你在window下进行安装和书写代码后编译为Linux下的可执行文件也可。

   选择你的Go版本,进行安装。

wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz

   将下载好的文件解压到/usr/local目录下(建议使用root用户解压):

tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local  # 解压

   最后配置一下环境变量,: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;$HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

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

   修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 检查:

~ go version
go version go1.14.1 linux/amd64

版本检查

   当安装完Go后,打开终端输入go version命令即可检查是否安装成功。

  

目录结构

   我们在windows下打开刚刚安装好的Go,可查看到如下的目录结构:

目录名 描述
api 每个版本的 api 变更差异
bin go 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
doc 英文版的 Go 文档
lib 引用的一些库文件
misc 杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
pkg Windows 平台编译好的中间文件
src 标准库的源码
test 测试用例

环境变量

GOROOT

   GOROOT为安装Go开发包的路径。

GOPATH

   GOPATH的路径需要我们自己在环境变量中进行配置,然后才可以使用Go语言进行开发。

   默认的在用户变量中,有一个GOPATH,我们可以将他修改为系统变量或者修改其中的值。

   修改任意值即可。

  

  

   在设置完环境变量后,使用go env可进行测试查看。

C:\Users\云崖先生>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\云崖先生\AppData\Local\go-build
set GOENV=C:\Users\云崖先生\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\GoLeran\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\GoLeran
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ 云崖先生\AppData\Local\Temp\go-build516282802=/tmp/go-build -gno-record-gcc-switches

工程目录

   当配置完GOPATH的环境变量后,我们还需要创建一些文件夹。

   那么对于个人开发者和工程开发来说,都具有一个不同的目录结构。

个人开发

   在GOPATH中,我们编写的GO源码都应该存放于src文件夹下。

   注意:默认的GOPATH下的bin目录也会添加至环境变量中。

  

工程开发

   在工程开发中,推荐使用个人的Github域名来进行文件夹的命名。

   因为在Go语言中,是按照包来进行管理的,所以为了防止不同包的项目名冲突,就可以按照这种结构来组织目录。

  

编译执行

VScode工具包

   这里创建出了一个Go文件,并书写我们的第一个Go程序。

   在书写Go程序时,我们可以安装一些Go的工具包(需要先安装git)。

   首先需要设置GOPROXY,打开终端设置如下:

go env -w GOPROXY=https://goproxy.cn,direct

   打开vscodeWindows平台按下Ctrl+Shift+PMac平台按Command+Shift+P,这个时候vscode界面会弹出一个输入框,在其中输入如下命令:

Go:install/Update Tools

   然后全选,开始安装工具包。

  

  

Go编写

   接下来编写我们的第一个Go程序,命名为hello.go

package main  // 声明main包,表明这是一个可执行程序

import "fmt" // 导入内置的fmt包

func main() { // main 程序入口
fmt.Println("hello,world!!") // 终端打印
}

go build

   go build表示将源代码编译成可执行文件。

   如下,我们将hello.go进行编译,在终端输入以下命令:

PS D:\GoLeran\src\yunya.com> go build -o hello.exe  // 将hello.go进行编译,编译的文件名为hello.exe
PS D:\GoLeran\src\yunya.com> .\hello.exe // 执行该文件
hello,world!!

   如果不使用-o,则将以上级目录名称作为编译后的文件名称。

   当然,你也可以在其他地方使用go build,后面跟上项目路径。

go install

   go install会自动进行编译,然后进行执行。

   它会将编译结果的可执行文件放在GOPATHbin目录下。

go run

   go run可以使go的源码文件立即进行执行而不进行编译。

D:\GoLeran\src\yunya.com>go run hello.go
hello,world!!

跨平台编译

   默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个Linux下可执行文件,那需要怎么做呢?

   只需要指定目标操作系统的平台和处理器架构即可,在cmd下输入以下三条命令:

SET CGO_ENABLED=0  // 禁用CGO 使用了CGO的代码是不支持跨平台编译的
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64

   然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。

   Mac下编译 LinuxWindows平台 64位 可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

   Linux下编译MacWindows平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

   Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

Go 安装介绍的更多相关文章

  1. Redis安装介绍

    Redis安装介绍 一.Linux版本及配置 1.  Linux版本:Red Hat Enterprise Linux 6虚拟机 2.  配置: 内存:1G:CPU:1核:硬盘:20G 二.Redis ...

  2. Docker版本与安装介绍

    Docker版本与安装介绍 Docker-CE 和 Docker-EE Centos 上安装 Docker-CE Ubuntu 上安装 Docker-CE Docker-CE和Docker-EE Do ...

  3. 三、安装cmake,安装resin ,tars服务,mysql 安装介绍,安装jdk,安装maven,c++ 开发环境安装

    三.安装cmake,安装resin 2018年07月01日 21:32:05 youz1976 阅读数:308   开发环境说明: centos7.2 ,最低配置:1核cpu,2G内存,1M带宽 1. ...

  4. Docker版本与centos和ubuntu环境下docker安装介绍

    # Docker版本与安装介绍 * Docker-CE 和 Docker-EE * Centos 上安装 Docker-CE * Ubuntu 上安装 Docker-CE ## Docker-CE和D ...

  5. SharePoint 2016 必备组件离线安装介绍

    前言 SharePoint 必备组件安装,一直以来都是SharePoint安装过程中的最大的坑,尤其是不能联网的服务器.博主在这里简单介绍一下离线安装过程,并附组件包下载以及安装命令,并且在windo ...

  6. [Kafka] - Kafka 安装介绍

    Kafka是由LinkedIn公司开发的,之后贡献给Apache基金会,成为Apache的一个顶级项目,开发语言为Scala.提供了各种不同语言的API,具体参考Kafka的cwiki页面: Kafk ...

  7. SaltStack 安装介绍 01

    一.入门指南 1.1 SALTSTACK是什么? The backbone of Salt is the remote execution engine, which creates a high-s ...

  8. Percona XtraBackup 安装介绍篇

    XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类似Innodb官方的热备份工具InnoDB Hot Backup的功能,它支持在线热备份(备份时不影响数据读写) ...

  9. Python下Tesseract Ocr引擎及安装介绍

    1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/tesseract,目前最新的源码 ...

  10. centos7下stf安装介绍(一)----环境搭建

    重要:node version需要8.x.x 介绍 stf 全称 Smartphone Test Farm ,一款WEB 端移动设备批量管理工具(Remote control all your Sma ...

随机推荐

  1. double与Double

    1. double是基本数据类型,Double是原始数据类型(Java 类) 2. double创建引用,Double创建对象 3. double不可以为NULL,Double是类所以其对象是可以为N ...

  2. log4j升级到log4j2

    log4j升级到log4j2 1.导入依赖 log4j2应尽量使用同一版本,否则可能出现不兼容的情况 <!-- log4j2 start --> <!-- log4j-1.2-api ...

  3. SEO工程师考试题目

    http://www.wocaoseo.com/thread-201-1-1.html      SEO,全名Search Engine Optimization,其中文名字为'搜索引擎优化' .其英 ...

  4. 注册github时总卡在第一步无法验证的解决办法

    从github官网可以看出问题所在,所以造成这一问题的极大可能就是浏览器的问题. 最简单的方法就是换手机浏览器进行注册

  5. 力扣Leetcode 50. 实现Pow(x, n)

    实现Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 ...

  6. 【学习中】Unity Schedule

    章节 内容 签到 第一课:界面介绍 第一讲 编辑器工作区 4月27日 第二课:资源管理 第二讲 资源及资源类型 4月27日 第三讲 资源管理:模型和角色动画的输出设置(上) 4月27日 第四讲 资源管 ...

  7. 避免nullpointer 空指针

    来自知乎: 一般在服务器返回的数据上我们会做数据合法性检测,所以在api文档上需要注明字段的取值范围,然后客户端根据这个去做数据检测,缺段就直接走数据错误的流程,这个很大程度上避免了不少nullpoi ...

  8. qdu-凑数题(01背包)

    Description 小Q手里有n(n<=1000) 个硬币,每枚硬币有一定的金额(200=>x>=1)他想知道,用这些硬币(每枚硬币只能用一次,但可能会有等面值的用两次) 能组成 ...

  9. 在centos6.5下搭建lnmp

    1.查看环境: [root@localhost /]# cat /etc/redhat-release CentOS release 6.5 (Final)   2.关掉防火墙(需要到国外地址下载软件 ...

  10. 下拉列表被flash覆盖的解决方法

    做鼎闻有一段时间了,有的banner轮播图的地方用flash替换的时候,就会导致上面的导航条下拉列表被flash覆盖,找了一段时间没有得到有效的解决方法,后来知道关键是flash的这一属性{ &quo ...