Go语言基础(1)

一、GO语言了解

1.1、区块链

区块链应用领域

金融领域: 所有人的财产证明,将不只有银行说了算,你的个人价值将永远保值!

司法领域: 每个人的不良记录将永远不能被销毁,树正公民良德!

行政领域: 比如:我们每个人的纳税。但是税到底花在什么地方,花多钱并不知道,让国家税透明化,每笔交易记录去中心化,有助于彻底解决腐败。

人事领域: 市场大量存在假学历,假履历。如果国家会出来去中心化的每人的履历区块链系统,那么每人的教育经历将永远无法造假,人才市场将更加公正。

商业领域: 双11商品限时秒杀!所有的秒杀记录在区块链里,防止内部员工内定。

1.2、合约

传统的合约会受到各种维度的影响。

自动化维度 ---- 条件满足,交易未必会继续。

主客观维度 ---- 公证人的主观意识影响合约规则。

执行时间维度 ---- 整个合约执行过程繁琐,浪费时间。

违约惩罚维度 ---- 有人违约,未必会受到惩罚,难以追究责任。

智能合约解决了传统合约中的信任问题,大幅降低了信任成本。

1.3、Go语言

Go是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效率的软件。GO语言借鉴了Python等其它编程语言简单,易学,生产效率高,同时GO语言专门针对多处理器(多核CPU,windows下的多核CPU)系统的程序进行了优化(让每核CPU都能够执行GO语言开发的程序),这样使用GO语言开发的程序运行的速度可以媲美C或C++开发程序的速度。
Go语言基础(1)
Go语言是一门编译型语言
Go语言基础(1)

1.4、Go语言优势

1、运行速度快。简单易学。

2、薪水待遇高。

3、适合区块链开发。

4、跨平台。

5、丰富的标准库(指令),Go 目前已经内置了大量的库,特别是网络库韭常强大。

6、Go里面也可以直接包含C代码,利用现有的丰富的C库。

7、语言层面支持并发,这个就是Go最大的特色,天生的支持并发。所谓并发,所有正在运行的程序轮流使用CPU,每个程序允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个程序服务,就好象所有的程序都在不间断地运行一样。并发好处就是可以运行多个程序,并不卡顿。中。
Go语言基础(1)

1.5、GO语言应用。

1、网络编程,这一块目前应用最广,例如网站开发。

2、服务器编程,例如:处理日志,处理文件。(在网站开发的过程中都会涉及到)。

3、区块链开发。

1.6、环境安装

Go官网:https://golang.google.cn/

Go语言标准库中文文档:https://studygolang.com/pkgdoc
Go语言基础(1)
Go语言基础(1)

安装成功

1.7、配置GOPATH

● GOPATH是一个环境变量,用来表明你写的go项目的存放路径(工作目录)。

● GOPATH路径最好只设置一个,所有项目代码都放到GOPATH 的src 目录下。(1.12后面就不需要配置或支持配置多个)

● 装好之后系统默认有个 GOPATH(如下),删除就好,自己配置(系统变量中配置)。

平台 			GOPATH默认值				举例

Windous		%USERPROFILE%/go		C:\[Users]用户名\go

Unix			SHOME/go				/home/用户名/go

Go语言基础(1)

1.8、GO项目结构

1.8.1、个人开发

Go语言基础(1)

1.8.2、多人开发

Go语言基础(1)

1.8.3、企业开发

Go语言基础(1)

1.9、GO常用命令

1.9.1、编译

● go build + 目标文件或文件夹(项目路径),默认从SRC目录下找

● 直接在项目的目录下 执行 go build

● go build -o 编译后文件名(Win系列加后缀,默认是执行文件名)

1.9.2、编译后执行

● 直接输入完整文件名(加后缀.exe)

1.9.3、编译加执行

● go run 文件路径(加后缀)。像执行脚本一样执行GO代码。

1.9.4、go install

① 先编译得到一个可执行文件

② 将可执行文件拷贝到“GOPATH/bin”

1.9.5、跨平台编译

● Windows指定目标操作系统的平台和处理器架构即可

▶ Linux

SET CGO_ENABLED=0 	//禁用CGO

SET GOOS=Linux 	 //目标平台是Linux

SET GOARCH=amd64  //目标处理器架构是amd64

go build

▶ Mac

SET CGO ENABLED=0

SET G00S = darwin

SET GOARCH and64

go build

● Mac下编译Windows和Linux平台64位 可执行程序

CGO_ENABLED=0 GOOS=linux  GOARCH=amd64 go build

CGO_ENABLED=G G00S=windows GOARCH=and64 go build

● Linux下编译Windows和Mac平台64位 可执行程序

CGO_ENABLED=0 GOOS=darwin  GOARCH=amd64 go build

CGO_ENABLED=G G00S=windows GOARCH=and64 go build
上一篇:mac安装go环境


下一篇:CGO常量和全局变量