手摸手学GO(01前世今生)|Go主题月

333 阅读3分钟

GOLANG的前世今生

002.jpg

前世

  1. C语言

GO语言的作者是Ken Thompson,他因为开发C语言和UNIX被人熟知。而GO远不止是C的升级版,它基于许多其他语言,取其精华,去其糟粕。
当然GO也继承了C的大量特性

  • 表达式语法
  • 控制流语句
  • 基本数据类型
  • 按值调用的形参传递
  • 指针
  1. GO的其他祖先
  • Modula-2启发了包概念
  • Oberon消除了模块接口文件和模块实现文件之间的差异
  • Oberon-2影响了包、导入和声明语法,以及方法声明语法
  1. 通信顺序进程(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

003.jpg

GO的特性

简单性

GOLANG相比其他高级语言特性不多,它没有继承,没有泛型,没有异常,没有注解,没有宏。只有一些语言基础特性

类型问题

它不像动态语言那样会产生许多类型错误,也不像C那样极端强调类型。GO能提供只有强类型系统才能实现的安全性和运行时性能,而不让程序员承担其复杂性。

自带电池的语言

GOLANG提供了丰富的API,用于比如I/O、文本处理、图形、加密、网络、分布式应用等,而且对许多标准格式、协议提供支持。

其他特性

  • 高效的并发编程
  • 自动化内存管理(GC)
  • 可以灵活的实现数据抽象和面向对象

GOLANG windows环境搭建

从官网下载zip,解压

官网地址:https://golang.google.cn/dl/

下载windows版本

004.jpg

配置环境变量

  1. 设置GOROOT 下图的路径就是GO的安装位置

006.jpg

  1. 设置PATH 在系统变量PATH中新增GO的bin目录

008.jpg

007.jpg

  1. 设置GOPATH

这个变量路径是GO项目的工作空间,用过Java的同学都知道,Java只需要配置上面两步,并不需要配置这个变量。 查阅网上资料后,发现这个变量大概和GO的包管理有关系,随着深入学习GO,以后会详细介绍这个地方。

009.jpg

检查是否安装成功

011.jpg

HELLO WORLD!

既然所有环境都搭好了,按照国际惯例,来一段HELLO WORLD

package main

import "fmt"

func main() {
	fmt.Print("hello,world!")
}

010.jpg