go程序设计语言前言
所属分类 go
浏览量 837
https://gopl.org/
Go语言圣经 《The Go Programming Language》
http://www.gopl.io/
https://github.com/adonovan/gopl.io/
0. Preface
1. Tutorial
2. Program Structure
3. Basic Data Types
4. Composite Types
5. Functions
6. Methods
7. Interfaces
8. Goroutines and Channels
9. Concurrency with Shared Variables
10. Packages and the Go Tool
11. Testing
12. Reflection
13. Low-Level Programming
20世纪70年代,贝尔实验室的Ken Thompson和Dennis M. Ritchie合作发明了UNIX操作系统,
同时Dennis M. Ritchie为了解决UNIX系统的移植性问题而发明了C语言,
贝尔实验室的UNIX和C语言两大发明奠定了整个现代IT行业最重要的软件基础
目前的三大桌面操作系统的中Linux和Mac OS X都是源于UNIX系统,
两大移动平台的操作系统iOS和Android也都是源于UNIX系统
C语言圣经 《The C Programming Language》
Go是一个开源的编程语言,它很容易用于构建简单、可靠和高效的软件
Go语言由来自Google的Robert Griesemer,Rob Pike和Ken Thompson
于2007年9月开始设计和实现,然后于2009年的11月对外正式发布
在Google工作的Ken Thompson和Rob Pike(他们在贝尔实验室时就是同事)
还有Robert Griesemer(设计了V8引擎和HotSpot虚拟机)一起合作,
为了解决在21世纪多核和网络化环境下越来越复杂的编程问题而发明了Go语言
Go语言 从Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,是C语言家族的成员
21世纪的C语言
Go语言已经成为云计算、云存储时代最重要的基础编程语言
GO从其他语言借鉴了很多好的想法,同时避免引入过度的复杂性
Go语言中和并发编程相关的特性是全新的也是有效的,同时对数据抽象和面向对象编程的支持也很灵活
自动垃圾收集
Go从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,
还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配
顺序通信进程 communicating sequential processes CSP
在CSP中,程序是一组中间没有共享状态的平行运行的处理过程,它们之间使用管道进行通信和控制同步
基于CSP的并发特性支持
Go语言的动态栈使得轻量级线程goroutine的初始栈可以很小
因此,创建一个goroutine的代价很小,创建百万级的goroutine完全是可行的
自动垃圾回收、一个包系统、函数作为一等公民、词法作用域、系统调用接口、只读的UTF8字符串
没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,
也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储
Go语言的面向对象机制与一般语言不同
它没有类层次结构,甚至可以说没有类
仅仅通过组合(而不是继承)简单的对象来构建复杂的对象
方法不仅可以定义在结构体上,而且可以定义在任何用户自定义的类型上
具体类型和抽象类型(接口)之间的关系是隐式的
所以很多类型的设计者可能并不知道该类型到底实现了哪些接口
基于顺序通信进程(CSP)概念的并发编程,使用goroutines和channels处理并发编程
传统的基于共享变量的并发编程
https://golang.google.cn
上一篇
下一篇
Rust安装
python猜数字小游戏
javascript猜数字小游戏
go程序设计语言01_01入门之hello
GO各版本新特性
SQLite 为何一直坚持用 C 语言