The Go Programming Language 🔍
Alan A. A. Donovan, Brian W. Kernighan Addison-Wesley Professional, Addison-Wesley professional computing series, First printing, October 2015, New York, 2015
英语 [en] · PDF · 5.3MB · 2015 · 📘 非小说类图书 · 🚀/lgli/lgrs/nexusstc/upload/zlib · Save
描述
The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++.
- The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers.
- Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool.
- The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples.
- Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time.
- The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries.
The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.
备用文件名
upload/motw_shc_2025_10/shc/The Go Programming Language - Brian W. Kernighan.pdf
备用文件名
motw/The Go Programming Language - Brian W. Kernighan.epub
备用文件名
motw/The Go Programming Language - Brian W. Kernighan.pdf
备用文件名
nexusstc/The Go Programming Language/bef9f542ed5addb39abc1d667c94c42f.pdf
备用文件名
lgli/The Go Programming Language.pdf
备用文件名
lgrsnf/The Go Programming Language.pdf
备用文件名
zlib/Computers/Computer Science/Brian W. Kernighan, Alan Donovan/The Go Programming Language_2648168.pdf
备选标题
Go Programming Language, The (Addison-Wesley Professional Computing Series)
备选标题
Язык программирования Go: пер. с англ
备选作者
Алан А. А. Донован, Брайнан У. Керниган; [пер. с англ. и ред. И. В. Красикова]
备选作者
Brian W. Kernighan; Alan A. A. Donovan
备选作者
Donovan, Alan, Kernighan, Brian
备选作者
Донован, Алан А. А
备选作者
Kernighan Brian W
备用出版商
Globe Fearon Educational Publishing
备用出版商
Longman Publishing
备用出版商
б. и.; Диалектика
备用出版商
Вильямс; б. и.
备用出版商
Addison Wesley
备用出版商
Cengage Gale
备用版本
Серия "Программирование для профессионалов", Москва, Санкт-Петербург, Russia, 2020
备用版本
Серия "Программирование для профессионалов", Москва, Санкт-Петербург, Russia, 2018
备用版本
Addison-Wesley Professional Computing Series, New York City, New York, USA, 2016
备用版本
Серия "Программирование для профессионалов", Москва [и др.], Russia, 2016
备用版本
Addison-Wesley professional computing series, New York State, 2016
备用版本
Addison-Wesley professional computing series, New York, cop. 2016
备用版本
United States, United States of America
备用版本
Pearson Education (US), New York, 2016
备用版本
1, PS, 2015
元数据中的注释
True PDF
元数据中的注释
0
元数据中的注释
lg1438519
元数据中的注释
producers:
3-Heights(TM) PDF Security Shell 4.5.24.1 (http://www.pdf-tools.com)
元数据中的注释
{"edition":"1","isbns":["0134190440","9780134190440"],"last_page":400,"publisher":"Addison-Wesley Professional","series":"Addison-Wesley Professional Computing"}
元数据中的注释
Memory of the World Librarian: marcell mars
元数据中的注释
"First printing, October 2015"--Title page verso.
Includes index.
元数据中的注释
Предм. указ.: с. 425-429
Пер.: Donovan, Alan A. A. The go programming language Boston [etc.] : Addison-Wesley, 2016 978-0-13-419044-0
元数据中的注释
РГБ
元数据中的注释
Russian State Library [rgb] MARC:
=001 010277375
=005 20200623135554.0
=008 200210s2020\\\\ru\\\\\\\\\\\\|||\|\rus|d
=017 \\ $a КН-П-20-009438 $b RuMoRKP
=020 \\ $a 978-5-907114-21-0 $c 500 экз.
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=084 \\ $a З973.2-018.19Go,0 $2 rubbk
=100 1\ $a Донован, Алан А. А.
=245 00 $a Язык программирования Go : $b пер. с англ. $c Алан А. А. Донован, Брайан У. Керниган
=260 \\ $a Москва $b [б. и.] ; $a Санкт-Петербург $b Диалектика $c 2020
=300 \\ $a 429 с. $b ил. $c 25 см
=336 \\ $a Текст (визуальный)
=337 \\ $a непосредственный
=490 0\ $a Серия "Программирование для профессионалов"
=500 \\ $a Предм. указ.: с. 425-429
=534 \\ $p Пер.: $a Donovan, Alan A. A. $t The go programming language $c Boston [etc.] : Addison-Wesley, 2016 $z 978-0-13-419044-0
=650 \7 $a Техника. Технические науки -- Энергетика. Радиоэлектроника -- Радиоэлектроника -- Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Go $2 rubbk
=700 1\ $a Керниган, Брайан $d 1942-
=852 \\ $a РГБ $b FB $j 2 20-9/156 $x 90
=852 7\ $a РГБ $b CZ2 $h З973.2-018/Д67 $x 83
元数据中的注释
Предметный указатель: с. 425-429
Пер.: Donovan, Alan A. A. The Go programming language Boston [etc.] : Addison-Wesley, cop. 2016 978-0-13-419044-0
元数据中的注释
Russian State Library [rgb] MARC:
=001 009647366
=005 20180607143347.0
=008 180531s2018\\\\ru\||||\\\\\\\0||\|\rus|d
=017 \\ $a КН-П-18-039527 $b RuMoRKP
=020 \\ $a 978-5-8459-2051-5 $c 500 экз.
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=080 \\ $a 004.4
=084 \\ $a З973.2-018.19Go,0 $2 rubbk
=100 1\ $a Донован, Алан А. А.
=245 00 $a Язык программирования Go $h [Текст] $c Алан А. А. Донован, Брайнан У. Керниган
=260 \\ $a Москва $b Вильямс ; $a Санкт-Петербург $b [б. и.] $c 2018
=300 \\ $a 429 с. $b ил. $c 24 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=490 0\ $a Серия "Программирование для профессионалов"
=500 \\ $a Предметный указатель: с. 425-429
=534 \\ $p Пер.: $a Donovan, Alan A. A. $t The Go programming language $c Boston [etc.] : Addison-Wesley, cop. 2016 $z 978-0-13-419044-0
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Go $2 rubbk
=650 \7 $a Языки программирования $0 RU\NLR\AUTH\661264476 $2 nlr_sh
=653 \\ $a Go - программы
=700 1\ $a Керниган, Брайан $d 1942-
=852 \\ $a РГБ $b FB $j 2 18-35/111 $x 90
元数据中的注释
Указ.
Пер.: Donovan, Alan A. A. The Go programming language Boston [etc.] : Addison-Wesley, cop. 2016 978-0-13-419044-0
元数据中的注释
Russian State Library [rgb] MARC:
=001 008474809
=005 20160505165338.0
=008 160429s2016\\\\ru\||||\\\\\\\0||\u\rus|d
=017 \\ $a 16-36342 $b RuMoRKP
=020 \\ $a 978-5-8459-2051-5 $c 700 экз.
=040 \\ $a RuMoRGB $b rus $e rcr
=041 0\ $a rus
=080 \\ $a 004.4
=084 \\ $a З973.2-018.19Go,0 $2 rubbk
=100 1\ $a Донован, Алан А. А.
=245 00 $a Язык программирования Go $h [Текст] $c Алан А. А. Донован, Брайнан У. Керниган ; [пер. с англ. и ред. И. В. Красикова]
=260 \\ $a Москва [и др.] $b Вильямс $c 2016
=300 \\ $a 429 с. $b ил. $c 24 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=490 0\ $a Серия "Программирование для профессионалов"
=500 \\ $a Указ.
=534 \\ $p Пер.: $a Donovan, Alan A. A. $t The Go programming language $c Boston [etc.] : Addison-Wesley, cop. 2016 $z 978-0-13-419044-0
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Go $2 rubbk
=650 \7 $a Языки программирования $0 RU\NLR\AUTH\661264476 $2 nlr_sh
=653 \\ $a Go - программы
=700 1\ $a Керниган, Брайан $d 1942-
=852 \\ $a РГБ $b FB $j 2 16-35/189 $x 90
备用描述
Contents 8
Preface 12
The Origins of Go 13
The Go Project 14
Organization of the Book 16
Where to Find More Information 17
Acknowledgments 18
1. Tutorial 20
1.1. Hello, World 20
1.2. Command-Line Arguments 23
1.3. Finding Duplicate Lines 27
1.4. Animated GIFs 32
1.5. Fetching a URL 34
1.6. Fetching URLs Concurrently 36
1.7. A Web Server 38
1.8. Loose Ends 42
2. Program Structure 46
2.1. Names 46
2.2. Declarations 47
2.3. Variables 49
2.4. Assignments 55
2.5. Type Declarations 58
2.6. Packages and Files 60
2.7. Scope 64
3. Basic Data Types 70
3.1. Integers 70
3.2. Floating-Point Numbers 75
3.3. Complex Numbers 80
3.4. Booleans 82
3.5. Strings 83
3.6. Constants 94
4. Composite Types 100
4.1. Arrays 100
4.2. Slices 103
4.3. Maps 112
4.4. Structs 118
4.5. JSON 126
4.6. Text and HTML Templates 132
5. Functions 138
5.1. Function Declarations 138
5.2. Recursion 140
5.3. Multiple Return Values 143
5.4. Errors 146
5.5. Function Values 151
5.6. Anonymous Functions 154
5.7. Variadic Functions 161
5.8. Deferred Function Calls 162
5.9. Panic 167
5.10. Recover 170
6. Methods 174
6.1. Method Declarations 174
6.2. Methods with a Pointer Receiver 177
6.3. Composing Types by Struct Embedding 180
6.4. Method Values and Expressions 183
6.5. Example: Bit Vector Type 184
6.6. Encapsulation 187
7. Interfaces 190
7.1. Interfaces as Contracts 190
7.2. Interface Types 193
7.3. Interface Satisfaction 194
7.4. Parsing Flags with flag. Value 198
7.5. Interface Values 200
7.6. Sorting with sort. Interface 205
7.7. The http. Handler Interface 210
7.8. The error Interface 215
7.9. Example: Expression Evaluator 216
7.10. Type Assertions 224
7.11. Discriminating Errors with Type Assertions 225
7.12. Querying Behaviors with Interface Type Assertions 227
7.13. Type Switches 229
7.14. Example: Token-Based XML Decoding 232
7.15. A Few Words of Advice 235
8. Goroutines and Channels 236
8.1. Goroutines 236
8.2. Example: Concurrent Clock Server 238
8.3. Example: Concurrent Echo Server 241
8.4. Channels 244
8.5. Looping in Paralle 253
8.6. Example: Concurrent Web Crawler 258
8.7. Multiplexing with select 263
8.8. Example: Concurrent Directory Traversal 266
8 9 Cancellation 270
8.10. Example: Chat Server 272
9. Concurrency with Shared Variables 276
9.1. Race Conditions 276
9.2. Mutual Exclusion: sync. Mutex 281
9.3. Read/Write Mutexes: sync. RWMutex 285
9.4. Memory Synchronization 286
9.5. Lazy Initialization: sync.Once 287
9.6. The Race Detector 290
9.7. Example: Concurrent Non-Blocking Cache 291
9.8. Goroutinesand Threads 299
10. Packages and the Go Tool 302
10.1. Introduction 302
10.2. Import Paths 303
10.3. The Package Declaration 304
10.4. Import Declarations 304
10.5. Blank Imports 305
10.6. Packages and Naming 308
10.7. The Go Tool 309
11. Testing 320
11.1. The go test Tool 321
11.2. Test Functions 321
11.3. Coverage 337
11.4. Benchmark Functions 340
11.5. Profiling 342
11.6. Example Functions 345
12. Reflection 348
12.1. Why Reflection? 348
12.2. reflect. Type and reflect. Value 349
12.3. Display, a Recursive Value Printer 352
12.4. Example: Encoding S-Expressions 357
12.5. Setting Variables with reflect.Value 360
12.6. Example: Decoding S-Expressions 363
12.7. Accessing Struct Field Tags 367
12.8. Displaying the Methods of a Type 370
12.9. A Word of Caution 371
13. Low-Level Programming 372
13.1. unsafe. Sizeof, Alignof,and Offsetof 373
13.2. unsafe. Pointer 375
13.3. Example: Deep Equivalence 377
13.4. Calling C Code with cgo 380
13.5. Another Word of Caution 385
Index 386
A 386
B 387
C 387
D 388
E 389
F 390
G 391
H 391
I 392
J 392
K 392
L 392
M 393
N 394
O 394
P 394
Q 395
R 395
S 396
T 397
U 398
V 399
W 399
X 399
Z 399
备用描述
Go is an open-source programming language that makes it easy to build clean, reliable, and efficient software. It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages. The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find Go's simplicity and fast tools a refreshing change. Thanks to its well-designed standard libraries and its excellent support for concurrent programming, Go is fast becoming the language of choice for distributed systems.
The Go Programming Language is the definitive book on Go for the working programmer. It assumes no prior knowledge of Go, nor any other specific programming language, so you'll find it an accessible guide whether you come from JavaScript, Ruby, Python, Java, or C++.
The book will quickly get you started using Go effectively from the beginning, and by the end, you will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems. You'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to your own projects.
The earlier chapters will introduce you to the basic concepts of Go programming---numbers, strings, functions---while at the same time presenting important computer science concepts like recursion, and useful examples of graphics, UTF-8, and error handling. The chapters on methods and interfaces will show you a new way to think about object-oriented programming; the chapter on concurrency explains why concurrency is so important in modern programming, and how Go helps you handle it well. You'll also learn about Go's pragmatic but effective approach to testing; how to build, test, and manage projects using the go tool, and the art of metaprogramming using reflection.
The book contains hundreds of interesting and practical examples that cover the whole language and a wide range of applications. The code samples from the book are available for download from gopl.io.
备用描述
« Go may be our generation's most important new programming language. It is exceptionally expressive, highly efficient in both compilation and execution, and enables the development of extremely reliable and robust programs. It shares the same spirit programmers once found in C: it helps serious professional programmers achieve maximum effect with minimum means. Now, Go shares something else with C, too. Brian Kernighan, who wrote the world's most respected and useful C primer for working programmers, has just done the same for Go. Together with Google Go insider Alan Donovan, Kernighan explains what Go does and doesn't borrow from C ... the great ideas it borrows from other modern languages ... and how it avoids features that lead to unnecessary complexity and unreliable code. Throughout, their short, carefully-crafted code examples demonstrate today's most effective Go idioms, so you can start using Go effectively right from the beginning, and quickly take advantage of its full power. All code has been extensively reviewed by Go's creators at Google for both completeness and accuracy. »-- Résumé de l'éditeur
备用描述
The book will quickly get students started using Go effectively from the beginning, and by the end, they will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems. They'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to their own projects.
开源日期
2016-01-12
更多信息……

🚀 快速下载

成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️

🐢 低速下载

由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)

所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
  • 对于大文件,我们建议使用下载管理器以防止中断。
    推荐的下载管理器:JDownloader
  • 您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
    推荐的电子书阅读器:Anna的档案在线查看器ReadEraCalibre
  • 使用在线工具进行格式转换。
    推荐的转换工具:CloudConvertPrintFriendly
  • 您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
    推荐的工具:亚马逊的“发送到 Kindle”djazz 的“发送到 Kobo/Kindle”
  • 支持作者和图书馆
    ✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
    📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。