GOLANG的前世今生
前世
- C语言
GO语言的作者是Ken Thompson,他因为开发C语言和UNIX被人熟知。而GO远不止是C的升级版,它基于许多其他语言,取其精华,去其糟粕。
当然GO也继承了C的大量特性
- 表达式语法
- 控制流语句
- 基本数据类型
- 按值调用的形参传递
- 指针
- GO的其他祖先
- Modula-2启发了包概念
- Oberon消除了模块接口文件和模块实现文件之间的差异
- Oberon-2影响了包、导入和声明语法,以及方法声明语法
- 通信顺序进程(CSP)
简单来说CSP就是一组程序的组合,组合中单个程序的运行不会受外界影响,程序间通信和同步采用通道完成。
栗子
【售货机、顾客】 售货机在接受了硬币coin后,可按顾客的要求支付cola或coffee。顾客在付了硬币后,或者想要cola,或者想要coffee,其选择不受外界影响。
GOLANG的并发编程借鉴了CSP思想
今生
2007年9月 GOLANG项目立项
2008年5月 Google开始全力投入GOLANG的研发
2009年11月 GOLANG第一个版本发布
2012年3月 GOLANG1.0发布
2021年3月 GOLANG最新版为1.16.2
使用GOLANG编写的软件
- 容器:Docker
- 软件架构:Kubernetes、ETCD
- DB:InfluxDB、TiDB
- 消息系统:NSQ
- 缓存:GroupCache
GO的特性
简单性
GOLANG相比其他高级语言特性不多,它没有继承,没有泛型,没有异常,没有注解,没有宏。只有一些语言基础特性
类型问题
它不像动态语言那样会产生许多类型错误,也不像C那样极端强调类型。GO能提供只有强类型系统才能实现的安全性和运行时性能,而不让程序员承担其复杂性。
自带电池的语言
GOLANG提供了丰富的API,用于比如I/O、文本处理、图形、加密、网络、分布式应用等,而且对许多标准格式、协议提供支持。
其他特性
- 高效的并发编程
- 自动化内存管理(GC)
- 可以灵活的实现数据抽象和面向对象
GOLANG windows环境搭建
从官网下载zip,解压
官网地址:https://golang.google.cn/dl/
下载windows版本
配置环境变量
- 设置GOROOT 下图的路径就是GO的安装位置
- 设置PATH 在系统变量PATH中新增GO的bin目录
- 设置GOPATH
这个变量路径是GO项目的工作空间,用过Java的同学都知道,Java只需要配置上面两步,并不需要配置这个变量。 查阅网上资料后,发现这个变量大概和GO的包管理有关系,随着深入学习GO,以后会详细介绍这个地方。
检查是否安装成功
HELLO WORLD!
既然所有环境都搭好了,按照国际惯例,来一段HELLO WORLD
package main
import "fmt"
func main() {
fmt.Print("hello,world!")
}