首页>参考读物>公共基础课>心理生活

Head First Go语言程序设计
作者 : [美]杰伊·麦克格瑞恩(Jay McGavren)著
译者 : 刘红泉 王佳 译
出版日期 : 2020-09-14
ISBN : 978-7-111-66493-2
定价 : 149.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 559
开本 : 16
原书名 : Head First Go
原出版社: O'Reilly Media, Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

Go是为高性能网络和多处理而设计的, 但与python和javascript一样,该语言易于阅读和使用。通过这本实用的实践指南,读者将学习如何使用演示实际语言的清晰示例来编写Go代码。最重要的是,读者将会了解到用人单位希望入门级Go开发人员所知晓的惯例和技术。主要内容包括语法基础、条件和循环、函数、包、数组、映射、结构、封装和嵌入、接口、故障恢复、共享、自动化测试、Web应用程序等。

图书特色

Go语言程序设计入门指南
学习编写简单、可维护的代码
避免令人尴尬的类型错误
专注于40多个练习
关注那些能使你最高效的功能
通过goroutine来并行运行函数

图书前言

欺骗你的大脑,让它认为你的生活依赖于如何用Go编程呢?
我真不敢相信他们 把这个写进了一本 Go语言的书中。
你的大脑如何看待Go。 在这里,你试图学习一些东西,而你的大脑在帮 你的忙,确保学习不会停滞不前。你的大脑在想:“最好给更重要的事情留点 儿空间,比如避开哪些野生动物,裸体滑雪是否是个坏主意。”那么,你如何在本节中,我们将回答一个急待解决的问题:为什么他们 要把这个写进一本关于Go的书里呢?
给谁看这本书
这本书是给谁看的
如果你对所有这些问题回答“是”:
1 你能使用有文本编辑器的电脑吗?
2 你想学习一种使开发变得快速和高效的编程语言吗?
3 比起枯燥无味的学术讲座,你是否更喜欢让人刺激的晚宴上的交谈?
那么这本书是给你看的。
谁应该远离这本书
如果你对其中任何一个问题回答“是”:
1 你对电脑完全陌生吗?
(你不需要水平太高,但是你应该了解文件夹和文件,知 道如何打开终端应用,以及如何使用简单的文本编辑 器。)
2 你是一个在寻找参考书的忍者摇滚明星的开发者吗?
3 你害怕尝试新的东西吗?你宁愿做根管治疗,也不愿意 穿一些色彩斑斓的衣服吗?你真的认为一本技术性的书 如果使用了比较轻松的语言就很不严肃吗?

那么这本书就不是给你看的。

来自市场营销的提示:本书适用于任 何持有有效信用卡的人。
如何使用这本书

我们知道你在想什么
“这本书怎么可能是一本关于用Go进行开发的非常严肃的书呢?” “这些图形是怎么回事?”
“我真的能这样学吗?”
我们知道你的大脑在想什么
你的大脑渴望新奇。它总是在搜索、扫描、等待一些不寻常的东西。 它就是这样建造的,它能帮助你活着。
那么,你的大脑如何处理你遇到的所有日常的、普通的、正常的事情 呢? 尽一切可能阻止它们干扰大脑真正的工作 —— 记录重要的事情。 它不会保存那些无聊的东西,因为它们永远不会通过“这显然不重要”
过滤器。
你的大脑如何知道什么事情是重要的? 假设你出去徒步一天,一只老
虎在你面前跳来跳去——你的大脑和身体会怎么样? 神经元被激活。情绪高涨。化学物质激增。 你的大脑就是这样知道......
这一定很重要!别忘记!
但3是想象一下你在家里或者在图书馆。这是一个安全、温暖、没有老 虎的地方。你在学习,准备考试,或者尝试学习一些很难的技术主题, 你老板认为这些东西需要一周,最多10天就可完成。
只有一个问题。你的大脑想帮你个大忙。它试图确保这些显然不 重要的内容不会扰乱稀缺的资源。资源最好用于存储真正“大” 的东西,比如老虎,比如火灾的危险,比如你不应该把那些派对 的照片上传到你的Facebook上。没有简单的方法告诉你的大脑,
“嘿,大脑,非常感谢你,但是不管这本书有多枯燥,不管我现在 的情绪有多糟糕,我真的希望你能保留这些东西。”
太好了。只有530页枯燥、无趣、乏味的东西了。
把读者当作学习者
你的大脑认为 这很重要。
你的大脑认为 这不值得保留。

我们把“Head First”的读者当作学习者
那么怎样才能学到一些东西呢? 首先,你必须得到它,然后确保你不会忘记它。这不是把事 情硬塞进你的脑子里。根据认知科学、神经生物学和教育心理学方面的最新研究,学习不仅 仅是了解纸面上的文字。我们知道什么可以使你的大脑兴奋。
一些“Head First”的学习准则:
可视化知识。图像远比文字更令人印象深刻,也使学习变得更加有效。(在回忆和转移研 究方面提高了89%。)它们也能让事情变得更容易理解。将词语放在与之相关的图形内或 附近,而不是放在底部或另一页上,学习者解决与内容相关的问题的可能性将提高两倍。
使用对话和个性化的风格。最近研究表明,如果内容直接面向读者,使用第一人称的对话 风格,而不是使用正式的语气,那么读者在学习后的测试中的表现可以提高40%。讲故事 而不是说教。使用非正式的语言,不要太严肃。你会更关注一个令人兴奋的晚宴,还是一 个讲座?
让学习者更深入地思考。换句话说,除非你主动弯曲你的神经元,否则你的大脑不会发生 什么变化。读者必须有动力、投入、好奇和灵感去解决问题,得出结论并产生新的知识。 为此,你需要挑战、锻炼和发人深省的问题,以及涉及大脑两侧和多种感官的活动。
吸引并保持读者的注意力。我们都有过“我真的很想学这个,但我不能在读完第一页后还 保持清醒”的经历。你的大脑会关注那些不寻常的、有趣的、奇怪的、引人注目的、意想 不到的事情。学习一个新的、棘手的、技术性的主题不一定很无聊。如果有趣的话,你的 大脑会学得更快。
调动读者的情绪。我们现在知道,你的记忆事物的能力很大程度上取决于事物的情感内容。
当你关注时你会记得,当你有感触时你会记得。不,我们不是在讲一个男孩和他的狗的令 人心痛的故事。我们谈论的是诸如惊喜、好奇、乐趣之类的情感,“什么......?”,以及 那种“我说了算!”的感受,当你解决了一个难题,掌握了别人认为很难的东西,或者意识到“我更了解技术”,而来自工程学的鲍勃却不会时,就会有这种感受。

如何使用这本书

元认知:思考“何为思考” 如果你真的想学习,而且你想学得更快、更深,那就留意你是如何集中注
意力的。想想你是如何思考的。学会如何学习。
我们中的大多数人在成长过程中没有学过元认知或学习理论的课程。我们 想去学习,但很少有人教我们如何学习。
但是我们假设,如果你有本书,你真的想学习如何写Go程序。你可能不想 花很多时间。如果你想使用你在本书中读到的东西,你需要记住它们。为 此,你必须理解它们。要从本书、其他书或学习经验中得到最大的收获, 就要对你的大脑负责。你的大脑与这些内容有关。
诀窍是让你的大脑看到你正在学习的新资料是非常重要的。对你的健 康也是至关重要的。像老虎一样重要。否则,你就会陷入一场持续的 战斗,你的大脑会尽其所能阻止新内容的产生。
那么,如何让你的大脑对待编程就像对待一只饥饿的老虎呢?
有慢的、乏味的方法,或者快的、更有效的方法。这个慢方法是纯 粹的重复。你显然知道,如果你不断地往脑子里灌输同样的东西,即使是最乏 味的主题,你也能够学习和记住。经过足够多的重复,你的大脑会说,“这个对他来 说并不重要,但是他一直一遍又一遍地看着同样的东西,所以我想它一定是重要的。”
快的方法是做任何能增加大脑活动的事情,尤其是不同类型的大脑活动。上一页的内 容是解决方案的重要组成部分,它们都已被证明可以帮助你的大脑朝着有利于你的方 向工作。例如,研究表明,把单词放在它们描述的图片中(而不是放在页面的其他地 方,比如标题或正文中),会让你的大脑试图理解单词和图片之间的关系,这就会引 起更多的神经元活动。更多的神经元活动意味着你的大脑更有可能意识到这是一件值 得注意的事情,并有可能把它记录下来。
谈话风格很有帮助,因为当人们意识到他们在交谈时往往会更加专注。因为他们希望 紧跟并坚持到底。令人惊奇的是,你的大脑并不一定在意你和一本书之间的“对话”! 如果写作风格是正式且枯燥的,那么你的大脑仿佛置身于一个无聊的课堂,周围都是 被动出席的听众。而此时,你的大脑就会觉得不需要保持清醒。
但图片和对话风格只是开始......

我想知道我怎么才能 骗我的大脑去记住 这些东西......
这样做

我们是这样做的
我们使用图片,因为你的大脑会为视觉而不是为文字做出调整。就你的大脑而言,一张 图片真的胜过千言万语。当文字和图片放在一起的时候,我们将文字嵌入图片中,这样 当文字在它所指的事物中,而不是在标题中或隐藏在正文中的某个地方时,你的大脑会 工作得更有效。
我们使用冗余,用不同的方式、不同的媒体类型和不同的感官说同样的事情,以增加内 容被编码到大脑多个区域的机会。
我们以意想不到的方式使用概念和图片,因为你的大脑会为新奇事物而调整,我们使用 图片和至少含有一些情感内容的想法,因为你的大脑会为关注情感的生物化学成分而调 整。那些使你感觉到某些东西的事情更容易被记住,即使这种感觉只是一点幽默、惊喜 或兴趣。
我们使用了个性化的对话方式,因为当你的大脑认为你在谈话时会比它认为你在被动地 听演讲时更加关注。即使在阅读时,你的大脑也会这样做。
我们把活动包括在内,因为你的大脑在做事情的时候比阅读的时候更善于学习和记忆。 我们让这些练习具有挑战性且可行,因为这是大多数人喜欢的。
我们使用了多种学习风格,因为你可能更喜欢循序渐进的过程,其他人想先了解全局, 而另外一些人只想看到一个示例。但不管你自己的学习偏好如何,每个人都能从以多种 形式呈现相同的内容中获益。
我们将你大脑两侧的内容都包括在内,因为你的大脑参与得越多,你学习和记住的东西 就越多,你能集中注意力的时间也就越长。因为大脑的一侧在工作通常意味着给另一侧 一个休息的机会,你可以在更长的时间内更有效率地学习。
我们还包括了一些故事和练习,这些故事和练习代表了不止一种观点,因为当你的大脑 被迫做出评估和判断时,它就会更深入地学习。
本书中包括挑战、练习和问题,而这些问题并不总是有一个直截了当的答案,因为当你 的大脑必须做某件事时就已经调整好了去学习和记忆。想想看,你不可能仅仅通过看健 身房的人就能让你自己保持体形。但我们尽力确保当你努力工作的时候,是在做正确的 事情。你不需要花费额外的精力来处理一个难以理解的示例,或者解析晦涩的、充满行 话的或过于生硬的文本。
我们用了“人”。在故事、例子和图片中大量使用人物,因为你的大脑更关注人,而不是事物。
如何使用这本书

下面是如何做能让你的大脑就范
所以,我们尽了自己的职责。剩下的就靠你自己了。这些技巧 是一个起点,倾听你的大脑,找出什么适合你,什么不适合。 尝试新事物。
把这个剪下来贴在 冰箱上。
1 放慢速度,多去理解,从而减少机械记忆。
不要只是阅读。停下来思考。当书问你问题时, 不要直接跳到答案。想象一下有人真的在问这个 问题。你强迫大脑思考得越深,你学习和记忆的 机会就越大。
2 做练习,记笔记。
我们将这些练习放入书中,但是我们直接告诉你 答案。这就好像是别人替你锻练身体一样。请你 拿起手中的笔进行练习,熟能生巧。有很多证据 表明,学习时的身体活动可以提高学习效率。
3 读懂“ 有问必答”。
这意味着一切。它们不是可选的边栏,而是核心 内容的一部分!不要跳过它们。
4 将本书作为你的睡前读物,或者至少是最后一个挑战。
学习的一部分(尤其是向长期记忆的转移)发生 在你放下书之后。你的大脑需要时间来做更多的 处理。如果你在这个过程中加入了一些新的东西, 你刚刚学到的一些东西就会丢失。
5 大声谈论你学到的知识。
说话会激活大脑的不同部分。如果你想要理解某 件事,或者增加你以后记住它的机会,就大声说 出来。更好的是,试着向别人大声解释。你会学得 更快,你可能会发现一些你阅读时不知道的知识。
6 大量喝水。
大脑在水分充足的时候工作效率最高。脱水(可 能在你感到口渴之前就会发生)会降低认知功能。
7 倾听你的大脑。
注意你的大脑是否超载了。如果你发现自己开始 匆匆掠过或忘记刚刚读过的内容,是时候休息一下了。一旦超过了某一时间点,你就无法通过投 入更多的努力来更快地学习,甚至可能会影响学 习过程。
8 感受某些事情。
你的大脑需要知道这很重要。参与故事。为照片配上你自己的标题。为一个蹩脚的笑话叹息总比 什么感觉都没有好。
9 写大量代码!
学习开发Go程序只有一种方法:写大量代码。这 就是你在整本书中要做的。编程是一种技能,而 要想精通它,唯一的方法就是练习。我们会给你 很多练习:每一章都有练习,这些练习会让你去 解决问题。不要跳过它们 —— 当你解出这些练习 时,你会学到很多东西。我们为每个练习都提供了答案 —— 如果你被问题卡住了,可以查看答案! (通常都是细节问题造成了困难。)但是在看答案之前先试着去解决。在继续阅读下一部分之前,一定要把当前问题都解决掉。
说明

说明
这是一次学习经历,而不是参考书。我们特意把可能妨碍学习的东西从书中删去了。第一 次,你需要从头开始,因为本书对你已经看过和学过的东西做了假设。
如果你用其他语言写过一点儿程序,这会对你有所帮助。
多数开发人员在学习了其他一些编程语言之后发现了Go。(他们经常寻求躲避另一种语 言。)我们对基本知识进行了足够的探讨,使一个完完全全的初学者也能够应付,但是我 们没有详细介绍什么是变量,或者if语句是如何工作的。如果你以前至少做过一点儿这 方面的工作,你会很轻松。
我们没有涉及每种类型、函数和包。
Go自带了很多软件包。当然,它们都很有趣,但是即使本书有现在的两倍长,也不能把它 们完全覆盖。我们的重点是对初学者来说非常重要的核心类型和函数。我们确保你对它们 有深刻的理解,并相信你知道如何以及何时使用它们。任何情况下,一旦你读完了本书, 你就可以拿起任何一本参考书,快速学习我们遗漏的内容。
这些活动不是可选的。
练习和活动不是附加的,它们是本书核心内容的一部分。有些是为了帮助记忆,有些是为 了理解,还有一些是为了帮助你应用所学到的知识。不要跳过练习。
冗余是有意的,也是重要的。
Head First书的一个显著区别是,我们希望你能真正理解它。我们希望你读完本书,记住你 学到的东西。大多数参考书都没有把记忆和回忆作为一个目标,但本书是关于学习的,所 以你会看到一些相同的概念出现了不止一次。
代码示例尽可能简洁。
在200行代码中费力地寻找需要理解的两行代码是令人沮丧的。本书中的大多数示例都是在 尽可能小的上下文中显示的,因此你要学习的部分是清晰而简单的。所以不要期望代码是 健壮的,甚至是完整的。那是你读完本书后的作业。书中的例子是专门为学习而写的,并 不总是功能齐全的。
我们已经将所有示例文件都放在了网上,你可以去下载。你可以在http://headfirstgo.com/上 找到它们。
如何使用这本书

致谢
致系列丛书创办者:
非常感谢Head First系列的创办者Kathy Sierra和Bert Bates。当我十多年前遇到这套丛书 时,我就很喜欢它,但从未想过我会为它写作。感谢你们创造了这种令人惊叹的教学 风格。
致O’Reilly团队:
感谢成就了这一切的O’ Reilly的每一个人,特别是编辑Jeff Bleiel,以及Kristen Brown、 Rachel Monaghan和其他的产品团队成员。
致技术审校者:
每个人都会犯错,但幸运的是,我有技术审校团队的Tim Heckman、Edward Yue Shung Wong和Stefan Pochmann来纠正我所有的错误。你永远不知道他们发现了多少问题,因 为我很快就销毁了所有的证据。但是他们的帮助和反馈是绝对必要的,永远感激他们!
致其他人:
感谢Leo Richardson提供额外的校对。 也许最重要的是,感谢Christine、Courtney、Bryan、Lenny和Jeremy的耐心和支持(现
在已经有两本书了)!
O’Reilly在线学习

O’Reilly在线学习
近40年来,O’Reilly Media提供了技术和业务培训、知识以及洞察力,帮助公司 取得成功。
我们独有的专家和创新者网络通过书籍、文章、会议和我们的在线学习平台分 享他们的知识和专长。O’Reilly的在线学习平台可以让你按需访问现场培训课 程、深度学习路径、交互式编程环境,以及来自O’Reilly和200多个其他出版商 的大量文本和视频。更多信息,请访问http://oreilly.com。

封底文字

你将从这本书中学到什么?
Go可以很容易地构建简单、可靠和高效的软件。本书可以让初级程序员很容易上手。虽然Go是为高性能网络和多处理而设计的, 但与Python和JavaScript一样,它易于阅读和使用。使用这本实用的实践指南,你将通过清晰的示例来学习如何编写Go代码。更重要的是,你将了解雇主希望入门级Go开发人员所知晓的约定和技术。
为什么这本书如此不同?
基于认知科学和学习理论的新研究,本书采用一种视觉丰富的格式来吸引你,而不是使用一种以文字为主的方法来使你昏昏欲睡。为什么要浪费时间在新的概念中挣扎?这种多感官的学习体验正是针对大脑真正的工作方式而设计的。
“这本书为我们这些只想继续做事情,而不想为没完没了的语法和技术决策伤脑筋的人提供了合适的基础。只要给你一点时间,你就能在这里学到一些新的、有用的东西,即使你的工作主要集中在其他语言上。”
——Peter Cooper,
Golang Weekly编辑

图:
了解数组和切片等数据结构
向全世界提供Web应用程序
使用接口描述常见功能
使用channel在goroutine之间传送数据

译者序

2007 年,Google 首席软件工程师 Rob Pike 与 Robert Griesemer 和 Ken Thompson 两位大 师,决定创造一种新语言来取代 C++,这就是 Go 语言。以下是 Go 语言的发展历程:
• 2009 年 11 月 10 日,Go 语言以开放源代码的方式向全球发布。
• 2011 年 3 月 16 日,Go 语言的第一个稳定(stable)版本 r56 发布。
• 2012 年 3 月 28 日,Go 语言的第一个正式版本 Go1 发布。
• 2013 年 4 月 4 日,Go 语言的 Go 1.1beta1 测试版发布。
• 2013 年 4 月 8 日,Go 语言的 Go 1.1beta2 测试版发布。
• 2013年5月2日,Go语言Go1.1RC1版发布。
• 2013年5月7日,Go语言Go1.1RC2版发布。
• 2013年5月9日,Go语言Go1.1RC3版发布。
• 2013年5月13日,Go语言Go1.1正式版发布。
• 2013年9月20日,Go语言Go1.2RC1版发布。
• 2013年12月1日,Go语言Go1.2正式版发布。
• 2014年6月18日,Go语言Go1.3版发布。
• 2014年12月10日,Go语言Go1.4版发布。
• 2015 年 8 月 19 日,Go 语言 Go 1.5 版发布,本次更新中移除了“最后残余的 C 代码”。
• 2016年2月17日,Go语言Go1.6版发布。
• 2016年8月15日,Go语言Go1.7版发布。
• 2017年2月17日,Go语言Go1.8版发布。
• 2017年8月24日,Go语言Go1.9版发布。
• 2018年2月16日,Go语言Go1.10版发布。
• 2018年8月25日,Go语言Go1.11版发布。
• 2019年3月1日,Go语言Go1.12版发布。
• 2019年9月3日,Go语言Go1.13版发布。
• 2020年2月25日,Go语言Go1.14版发布。
出现在 21 世纪的 Go 语言,虽然不能如愿取代 C++,但是其近于 C 的执行性能和近于解 析型语言的开发效率以及近乎完美的编译速度,已经风靡全球,很多人将其誉为“21 世 纪的 C 语言”。
Go 语言在云计算、边缘计算、大数据、微服务、物联网、高并发领域应用得越来越广泛。 越来越多的知名公司正在把 Go 作为开发新项目的首选语言。
本书作者 Jay McGavren 自 2005 年以来一直从事专业软件开发,他使用过多种语言,包 括 Java、Ruby、JavaScript 和 Go。
Go 使构建简单、可靠、高效的软件变得容易。这本书让初级程序员很容易上手。Google 为高性能网络和多处理而设计了 Go,但与 Python 和 JavaScript 一样,该语言易于阅读 和使用。有了这本非常实用的实践指南,你将通过清晰的示例来学习如何编写 Go 代码。 最重要的是,你将获悉雇主希望入门级 Go 开发人员所需了解的约定和技术。
本书是由我和王佳共同翻译的。由于翻译水平和时间有限,译文中难免存在语句生硬、 词语表达不够准确,甚至错误和疏漏等情况,恳请读者批评指正。同时,希望通过听取 大家的建议和反馈,努力提高自己的翻译水平。
最后,通过阅读此书,希望你能了解 Go,喜欢 Go,掌握 Go,为将来成为一名优秀的 Go 程序员打下良好的基础!

刘红泉
于北京

图书目录

目录 (概要)
如何使用这本书:前言 xxvii
1 让我们开始吧:语法基础 1
2 接下来运行哪些代码:条件和循环 31
3 调用:函数 79
4 代码集:包 113
5 列表:数组 149
6 追加的问题:切片 175
7 标签数据:映射 205
8 构建存储:struct 231
9 我喜欢的类型:定义类型 265
10 保密:封装和嵌入 289
11 你能做什么:接口 321
12 重新站起来:从失败中恢复 349
13 分享工作:goroutine和 channel 379
14 代码的质量保证:自动化测试 401
15 响应请求:Web应用程序 425
16 要遵循的模式:HTML模板 445
A 理解os.OpenFile:打开文件 481
B 有六件事我们没有涉及:剩下的内容 495

目录 (真正的目录)
如何使用这本书
前言
你的大脑如何看待Go。在这里,你试图学习一些东西,而你的大脑 在帮你的忙,确保学习不会停滞不前。你的大脑在想:“最好给更重要的 事情留点儿空间,比如避开哪些野生动物,裸体滑雪是否是个坏主意。” 那么,你如何欺骗你的大脑,让它认为你的生活依赖于如何用Go编程呢?
这本书是给谁看的 xxviii
我们知道你在想什么 xxix
我们知道你的大脑在想什么 xxix
元认知:思考“何为思考” xxxi
我们是这样做的 xxxii
说明 xxxiv
致谢 xxxv
1让我们开始吧 语法基础
准备好给你的软件充电了吗?你想要一种编译速度快的简单编程语言吗?它跑 得快吗?它可以很容易地将你的工作分发给用户吗?那就准备好学习Go吧!
Go是一种注重简单性和速度的编程语言。它比其他语言都简单,所以学起来更快。它 可以让你利用当今多核计算机处理器的能力,使你的程序运行得更快。本章将向你展 示所有Go的功能,这些功能将使你作为开发人员的生活更轻松,并使你的用户更快乐。
准备好,出发 2
Go Playground 3
这一切意味着什么 4
如果出了问题怎么办 5
调用函数 7
Println函数 7
使用其他包中的函数 8
函数返回值 9
Go程序模板 11
字符串 11
符文 12
布尔值 12
数字 13
数学运算与比较 13
类型 14
声明变量 16
零值 17
短变量声明 19
命名规则 21
转换 22
在你的计算机上安装Go 25
编译Go代码 26
Go工具 27
使用“go run”快速尝试代码 27
你的Go 工具箱 28

package main import

教学资源推荐
作者: (美)克里斯托弗 彼得森(Christopher Peterson) 著
作者: [美] 约翰·W.桑特洛克(John W.Santrock) 著
作者: [美] 霍华德·S. 弗里德曼(Howard S. Friedman) 米利亚姆·W. 舒斯塔克(Miriam W. Schustack) 著
作者: (加)P.弗雷泽·约翰逊(P.Fraser Johnson) (美) 安娜·E.弗林(Anna E.Flynn) 著
参考读物推荐
作者: [美]杰罗姆·S. 甘斯(Jerome S. Gans) 著
作者: [美] 佩格·道森(Peg Dawson)理查德·奎尔(Richard Guare) 著