Go介绍

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

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

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

Go安装

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

  

Windows

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

  

  

  

  

  

Linux

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

   当然,基于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

   打开vscode,Windows平台按下Ctrl+Shift+P,Mac平台按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会自动进行编译,然后进行执行。

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

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下编译 Linux 和Windows平台 64位 可执行程序:

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

   Linux下编译Mac和Windows平台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. 接口测试中postman环境和用例集

    postman的环境使用 postman里有环境的设置,就是我们常说的用变量代替一个固定的值,这样做的好处是可以切换不同的域名.不同的环境变量,不同的线上线下账户等等场景.下面就看下怎么用吧. 创建一 ...

  2. android studio 如何进行格式化代码 快捷键必备

    在Eclipse中,我们一般使用Ctrl+Shift+F来格式化代码,Android Studio中需要换成: Reformat code CTRL + ALT + L (Win) OPTION + ...

  3. 【平台开发】— 8.前端-从[项目管理]来看vue

    现在要来实现[项目管理]这个功能了. 想象一下页面,元素大概就是:列表页.查询框.新增按钮.编辑.mock入口按钮. 那先来实现列表和新建,也顺带着整理一下用到的vue相关指令知识. 一.后端 后端就 ...

  4. [BUUOJ记录] [BJDCTF 2nd]fake google

    本题考查python jinjia2的ssti,其实tplmap直接梭哈都可以 随便输入一个值,查看源代码就能看到一个Hint: 用下面的流程图测试一下,看看是什么模板引擎: 用Payload测试之后 ...

  5. php反序列化总结与学习

    基础知识: 1.php类与对象 2.魔术函数 3.序列化方法 类与对象 <?php class test{ public $var = "hello world"; publ ...

  6. 开发者的福音,LR.NET模块化代码生成器

    代码生成器,是快速开发平台的核心功能之一,是一种用来帮助缺乏经验或者时间的开发者快速生成规范代码的工具,可以在极大程度上提升开发者的工作效率, 能有效避免重复工作.但稍有经验的开发者都明白,代码生成器 ...

  7. Istio 的配置分析

    Istio 的配置分析 目录 Istio 的配置分析 Analyzer 的消息格式 ConflictingMeshGatewayVirtualServiceHosts 问题解决 举例 Conflict ...

  8. Ajxax技术-1

    1.什么是Ajax Ajax: Asynchronous javascript and xml (异步javascript和xml). ==Ajax并不是一种新技术,而是已有技术的集合.JavaScr ...

  9. 在Oracle中十分钟内创建一张千万级别的表

    小表不会产生性能问题,大表才会.要练习SQL调优,还非得有大表不可.但数据不会自然产生,没有数据时如何创建一张千万级别的大表呢? 之前,我想用Oracle的批量插入语法去插入数据,此语法如下: INS ...

  10. redis锁操作

    模拟多线程触发 package com.ws.controller; import io.swagger.annotations.Api; import io.swagger.annotations. ...