- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
2 第 1 章 初识 Go 语言
第 1 章
初识Go语言
在真正地讲解Go语言之前,先让我们对它有个宏观的认识。本章将介绍Go语言是什么、有
哪些特性、有哪些优势和不足,以及应该怎样学习它。现在就让我们开始吧。
1.1 Go 语言特性一瞥
我们先来看看Go语言的主要特性。
开放源代码的通用计算机编程语言。开放源代码的软件(以下简称开源软件)更容易被
修正和改进。因为,几乎所有的互联网用户都可以看到这些源代码,并可以提供自己的
意见和建议,甚至还可以参与到实际的开发工作中去。与一些不公开源代码的软件(也
可称为闭源软件)相比,开源软件的开发迭代周期要短很多,并且迭代速度要快很多。
这正印证了“众人拾柴火焰高”这句俗语。
虽为静态类型、编译型的语言,但Go语言的语法却趋于脚本化,非常简洁。这方面的内
容,我们会在第3章集中论述。我们可以直接使用各种字面量来表示各种数据类型以及它
们的值,并且还可以使用非常简约的方式操作它们。
卓越的跨平台支持,无需移植代码。这里的跨平台主要是指跨计算架构和操作系统。Go
语言目前已经支持绝大部分主流的计算架构和操作系统了,并且这个范围还在不断地扩
大。我们只要下载与之对应的Go语言安装包,并且经过基本一致的安装和配置步骤,就
可以使Go语言就绪了。除此之外,在编写Go语言程序的过程中,我们几乎感觉不到不同
平台的差异。
全自动的垃圾回收机制,无需开发者干预。Go语言程序在运行过程中的垃圾回收工作由
Go语言运行时系统负责。不过,Go语言也允许我们进行人工干预。在第三部分,我们会
适时地介绍这方面的内容。
原生的先进并发编程模型和机制。Go语言拥有自己独特的并发编程模型,其组成部分有
Goroutine (也可称为Go程)和Channel (也可称为通道)等。实际上,这部分内容也是本
书最重要的主题。在第三部分,我们会一起领略它们的风采。
拥有函数式编程范式的特性,函数为一等代码块。Go语言支持多种编程风格,包括面向
对象编程和函数式编程。而对函数式编程的最有力的支撑就是Go语言将函数类型视为了
1.2 Go 语言的优劣 3
第一等类型。我们会在第3章中说明这一点。 1
无继承层次的轻量级面向对象编程范式。Go语言中的接口与实现之间完全是非侵入式的。
这种接口实现方式总是被人们津津乐道。不但如此,在Go语言中只有类型嵌入而没有类
型继承。这规避了很多与继承有关的复杂问题,也使类型层次更加简单化了。这部分内
容同样会在第3章中展示。
2
内含完善、全面的软件工程工具。Go语言自带的命令和工具相当地强大。通过它们,我
们可以很轻松地完成Go语言程序的获取、编译、测试、安装、运行、运行分析等一系列
工作。可以看到,这几乎涉及了开发和维护一个软件的所有环节。这可以算是一站式的
编程体验了。在本章,我们会简要地浏览一下这些工具。
代码风格强制统一。Go语言的安装包中有自己的代码格式化工具。我们可以利用它来统 3
一程序的编码风格。
程序编译和运行速度都非常快。由于Go语言的简洁语法,我们可以快速地编写出相应的
程序。加之Go语言强大的运行时系统和先进的并发编程模型,Go语言程序可以充分地利
用计算环境并运行飞快。在这本书的内容中,我们会通过对Go语言的各个方面的深入介 4
绍使你真正地了解到Go语言如此优秀的原因。
标准库丰富,极适合开发服务端程序和Web程序。Go语言是通用的编程语言,但是它也
有尤为擅长的几个方面,例如系统级程序和Web程序等,这主要得益于它丰富的标准库。
我们会在本书中介绍很多Go语
原创力文档


文档评论(0)