编程语言介绍
2005年4月,Intel仓促推出简单封装的2核心 Pentium D 和 Pentium4至尊版840 。之后不久,AMD也发布了双核心 皓龙(Opteron) 和 速龙(Athlon) CPU芯片。
2006年被认为是多核心CPU的元年。这年7月23日,Intel基于酷睿(Core)架构的CPU发布。11月,Intel又推出了面向服务器、工作站和高端PC机的 至强(Xeon)5300 和 酷睿2 双核心和4核心至尊版系列CPU。作为对Intel的回应,7月24日,AMD宣布对双核 Athlon64 X2 处理器进行大降价。多核心cpu开始被慢慢普及
2007 年 9 月 20 日下午google的一次普通讨论,就这么成为了计算机编程语言领域的一次著名历史事件,开启了一个新编程语言的历史。
罗伯·派克和罗伯特·格瑞史莫、肯·汤普森坐在一处,交换了关于设计一门新编程语言的想法。
之所以有这种想法,是因为当时的谷歌内部主要使用 C++ 语言构建各种系统,但 C++ 的巨大复杂性、编译构建速度慢以及在编写服务端程序时对并发支持的不足,让三位大佬觉得十分不便,他们就想着设计一门新的语言。在他们的初步构想中,这门新语言应该是能够给程序员带来快乐、匹配未来硬件发展趋势并适合用来开发谷歌内部大规模网络服务程序的。
在第一天的简短讨论后,第二天这三位大佬又在谷歌总部的“雅温得(Yaounde)”会议室里具体讨论了这门新语言的设计。会后罗伯特·格瑞史莫发出了一封题为“prog lang discussion”的电邮,对这门新编程语言的功能特性做了初步的归纳总结。2007年 9 月 25 日,罗伯·派克在一封回复电邮中把这门新编程语言命名为“go”:
2009 年 10 月 30 日,罗伯·派克在 Google Techtalk 上做了一次有关 Go 语言的演讲“The Go Programming Language”,这也是 Go 语言第一次公之于众。十天后,也就是 2009 年 11 月 10 日,谷歌官方宣布 Go 语言项目开源,之后这一天也被 Go 官方确定为 Go 语言的诞生日。
Go语言的开发者是Google公司,具体由Robert Griesemer、Rob Pike和Ken Thompson三位计算机科学家在2007年共同设计和开发
Robert Griesemer:他在加入Go团队之前,他曾参与Google V8 JavaScript引擎、Sawzall语言、Java HotSpot虚拟机和Strongtalk系统的工作。他在Go语言的语法设计和编译器实现方面发挥了重要作用,希望通过Go语言简化并行计算和内存管理
Rob Pike:曾在贝尔实验室工作,参与了Unix和Plan 9操作系统的开发,UTF-8 编码的最初设计。Pike在Go语言的并发模型设计中起到了关键作用,特别是Goroutine和Channel的设计,使得Go语言在处理高并发任务时具有显著优势
Ken Thompson:是计算机科学界的传奇人物,与Dennis Ritchie共同创造了Unix操作系统,并在编程语言领域有着深厚的造诣,1983年获得图灵奖。Thompson在Go语言的设计中主要提供了整体指导和建议
Go (2009 年):
这是 Go 语言的第一个公开发布的版本,标志着 Go 语言的正式诞生。
发布Go 1.0 (2012年)
2012年,Go 1.0 正式发布,标志着该语言的成熟。
2015年:Go 1.5 版本发布,Go 实现了自举,不再依赖 C 编译器 。
2018年:Go 1.11 引入了 Go module 作为新的包管理机制 。
2021年:Go 1.16 版本发布,支持苹果的 M1 芯片,并默认启用了 Go module-aware 模式 。
2022年:Go 1.18 版本发布,增加了对泛型的支持 。
2025年:Go 1.24 版本发布,现在完全支持泛型类型别名 。
计算机简介 Go 语言从最初的设计到如今,已经发展成为云计算和微服务领域的热门编程语言,其简洁、高效、并发处理能力强的特点受到了开发者的广泛欢迎。
现代电子计算机的组成结构是由约翰·冯·诺依曼(John von Neumann)提出的。他提出了著名的“冯·诺依曼体系结构”,该体系结构包括五大部件:运算器、控制器、存储器、输入设备和输出设备。
输入设备的数据在进入计算机后,并不直接进入CPU,而是先进入内存。在冯诺依曼体系结构中,数据的流动方向是输入设备 -> 内存 -> CPU -> 内存 -> 输出设备。这是因为输入设备和输出设备的速度相对较慢,如果直接与CPU交互,会导致CPU等待输入和输出的时间过长,从而降低计算机的效率。因此,输入设备将数据预先加载到内存中,然后内存与CPU进行交互
我们编写的运行程序,都是需要先加载到内存中,才能进行运行。
编程语言分类
执行方式分类:
(性能高)编译型语言:源代码在编译阶段被转换为机器码,然后再执行,如C、C++,go等。
(相对低)解释型语言:源代码被解释器逐行解释并执行,不需要显式编译步骤,如Python、JavaScript、php
(介于两者之间)java和C#是先编译成中间代码,并有对应的虚拟机逐行解释并执行
按类型分类:
静态语言:变量类型在编译时确定,如C、C++、Java、C#、go等。
动态语言:变量的类型是模糊的,只有当代码被执行时,才会根据实际赋值来决定变量的类型。一个变量在不同的阶段可以被赋予不同类型的值。如Python、PHP、JavaScript等
环境搭建 下载Go安装包
下载完成直接安装。
安装包版本会在安装过程中给我们配置好环境变量。
如果是解压版本,需要自己配置一下四个换将变量
go安装包解压后所在的路径
GOROOT = C:\Go;
GOPATH是Go工具包所在的路径(自己指导定一个位置,下载的工具包会保存在这个位置)
GOPATH = C:\Users\Administrator\go;
把上边两个目录下的bin目录包含在path环境变量下
Path = %GOROOT%\bin;%GOPATH%\bin;
配置Go代理和Go包校验方式
go env -w GOPROXY=goproxy.cn,direct
go env -w GOSUMDB=sum.golang.google.cn
下载vscode并安装
配置vscode插件(中文语言包,Code Runner , go )
下载go插件
查看-命令面板 或者 按Ctrl+Shift+p 打开命令面板。
输入 go install tools
全选,点确定,安装go插件
显示所有工具安装成功。会在 GOPATH/bin目录下有七个文件。
其中gopls dlv staticcheck 是非常重要的工具
开始运行一个hello world 在GOPATH目录下新建立一个src文件夹。并拖入vscode
在src下建立一个chapter01文件夹
在chapter01下建立一个demo1文件夹。在demo1下建立一个main.go文件,输入
package main
import "fmt"
func main() {
fmt.Println("hello world I am Gopher")
}
在vscode里右击.go文件 --》 点击[Run Code]即可运行go程序
go程序的入口是main 包下的 main函数。
一个目录下,不能包含两个同时是main包并且有main函数的入口文件。
注释 单行注释
单行注释以两个正斜杠开头 (//)。
// 和行尾之间的任何文本都会被编译器忽略(不会执行)。
块注释
以 /* 开头,以 */ 结尾,不能嵌套使用。