go语言介绍
# 1 诞生于 2009年,10年的时间,非常新的语言,天然支持并发,很新,生态不完善
-python:1989年
-java:1990年
-2005年,之前的语言,对并发支持不是特别好
# 2 轮子少(生态),django,flask beego(中国人写的,orm都有),gin(集成gorm),两三个连mysql的模块
# 3 google出的 python,java:sun公司,甲骨文收购了 c#:微软
#4 Go是静态 强类型语言,是区别于解析型语言的编译型语言。
-编译后执行---》编译成可执行文件 (java编译成字节码--运行在jvm上,每台机器都要跑一个jvm,300m内存)
-解释型:直接运行在解释器上,php,js,python
-夸平台性如何?java:一处编码,处处运行,go:夸平台编译(交叉编译),可以在windows平台编译出linux下的可执行文件
-在linux上装过python,源码包下载,解压,make && make install gcc编译的,当前平台的可以执行文件
-go写的程序,只需要跨平台编译完,拿到不通平台上,不需要安装任何依赖
-强类型:go,python是强类型,不允许不同类型运算 'aa'+1 报错
-弱类型:允许不通类型运算
# 5 跨平台的编译型语言
# 6 有垃圾回收的机制(gc) python--》gil
# 7 支持面向对象和面向过程的编程模式(go不是一个纯粹的面向对象语言,面向对象的特性它都有:继承,封装,多态)
# 8 2009年推出 12年稳点版本 1.5——实现的架构变化,同时保留了和旧版本的兼容性,以后的go,完全实现了go自己写的
2020年 1.14版本 ---》规划:go 2.0以后,会有大更新:支持泛型,异常处理。。。
# 9 Go语言应用:google,基本上所有互联网都会有go,不是在用go,就是在转go的路上
# 10 go语言为什么笔记火:docker火,谷歌(k8s),区块链(第一款开源的区块链项目,用go写的),国内互联网公司爱用,性能高,语法简介,上手快,go特别适合服务端开发(微服务的开发)
# Go语言发展前景:统治下一个十年
go开发包下载
安装包下载地址为:https://golang.org/dl/。
如果打不开可以使用这个地址:https://golang.google.cn/dl/。
命令介绍
直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:
build: 编译包和依赖
clean: 移除对象文件
doc: 显示包或者符号的文档
env: 打印go的环境信息
bug: 启动错误报告
fix: 运行go tool fix
fmt: 运行gofmt进行格式化
generate: 从processing source生成go文件
get: 下载并安装包和依赖
install: 编译并安装包和依赖
list: 列出包
run: 编译并运行go程序
test: 运行测试
tool: 运行go提供的工具
version: 显示go的版本
vet: 运行go tool vet
配置
go env会产生以下信息:
GO111MODULE= # 没有值或者off,表示没有开启go mode模式,用的就是gopath模式
GOROOT=c:\go # go开发包的安装路径,确认好是否对
GOPATH=C:\Users\辜友银\go # 代码存放路径,确认好是否对,以后你的go代码都放在这个文件夹下
# go mode模式:代码可以放在任意路径
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 GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\辜友银\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\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
修改配置
windows:
set GOPATH=E:\go # 改了之后,代码必须放在E:\go\src下面
go env -w GO111MODULE=on
mac和linux:
export GO111MODULE=on
go env -w GO111MODULE=on
golandIDE工具下载
IDE 下载地址:http://www.jetbrains.com/go/?fromMenu
GOPROXY=https://goproxy.io
编译并执行命令
package main //表示声明main包,每一个go代码的第一行必须写这个
import "fmt"
func main(){
fmt.Println("hellword")
fmt.Println("hello word")
}
// 程序的执行入口,是main包下的main函数
//一个go项目只能有一个main函数
命令
# go命令
go build hello.go # 编译成.exe的文件
go run hello.go # 编译并执行,会产生一个.exe的执行文件。
# 在golang中执行
右键,选择,run
go get "github.com/gin-gonic/gin" //指定下载
go mod tidy //自动监测,查漏补缺
go get github.com/go-redis/redis@master //@master获取最后一个版本