mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-12-25 14:28:58 +00:00
3.8 KiB
3.8 KiB
項目進度
- Preface
- Chapter 1: Tutorial
- 1.1 Hello, World
- 1.2 Command-Line Arguments
- 1.3 Finding Duplicate Lines
- 1.4 Animated GIFs
- 1.5 Fetching a URL
- 1.6 Fetching URLs Concurrently
- 1.7 A Web Server
- 1.8 Loose Ends
- Chapter 2: Program Structure
- 2.1 Names
- 2.2 Declarations
- 2.3 Variables
- 2.4 Assignments
- 2.5 Type Declarations
- 2.6 Packages and Files
- 2.7 Scope
- Chapter 3: Basic Data Types
- 3.1 Integers
- 3.2 Floating-Point Numbers
- 3.3 Complex Numbers
- 3.4 Booleans
- 3.5 Strings
- 3.6 Constants
- Chapter 4: Composite Types
- 4.1 Arrays
- 4.2 Slices
- 4.3 Maps
- 4.4 Structs
- 4.5 JSON
- 4.6 Text and HTML Templates
- Chapter 5: Functions
- 5.1 Function Declarations
- 5.2 Recursion
- 5.3 Multiple Return Values
- 5.4 Errors
- 5.5 Function Values
- 5.6 Anonymous Functions
- 5.7 Variadic Functions
- 5.8 Deferred Function Calls
- 5.9 Panic
- 5.10 Recover
- Chapter 6: Methods
- 6.1 Method Declarations
- 6.2 Methods with a Pointer Receiver
- 6.3 Composing Types by Struct Embedding
- 6.4 Method Values and Expressions
- 6.5 Example: Bit Vector Type
- 6.6 Encapsulation
- Chapter 7: Interfaces
- 7.1 Interfaces as Contracts
- 7.2 Interface Types
- 7.3 Interface Satisfaction
- 7.4 Parsing Flags with flag.Value
- 7.5 Interface Values
- 7.6 Sorting with sort.Interface
- 7.7 The http.Handler Interface
- 7.8 The error Interface
- 7.9 Example: Expression Evaluator
- 7.10 Type Assertions
- 7.11 Discriminating Errors with Type Assertions
- 7.12 Querying Behaviors with Interface Type Assertions
- 7.13 Type Switches
- 7.14 Example: Token-Based XML Decoding
- 7.15 A Few Words of Advice
- Chapter 8: Goroutines and Channels
- 8.1 Goroutines
- 8.2 Example: Concurrent Clock Server
- 8.3 Example: Concu rent Echo Server
- 8.4 Channels
- 8.5 Looping in Parallel
- 8.6 Example: Concurrent Web Crawler
- 8.7 Multiplexing with select
- 8.8 Example: Concurrent Directory Traversal
- 8.9 Cancellation
- 8.10 Example: Chat Server
- Chapter 9: Concurrency with Shared Variables
- 9.1 Race Conditions
- 9.2 Mutual Exclusion: sync.Mutex
- 9.3 Read/Write Mutexes: sync.RWMutex
- 9.4 Memory Synchronization
- 9.5 Lazy Initialization: sync.Once
- 9.6 The Race Detector
- 9.7 Example: Concurrent Non-Blocking Cache
- 9.8 Goroutines and Threads
- Chapter 10: Packages and the Go Tool
- 10.1 Introduction
- 10.2 Import Paths
- 10.3 The Package Declaration
- 10.4 Import Declarations
- 10.5 Blank Imports
- 10.6 Packages and Naming
- 10.7 The Go Tool
- Chapter 11: Testing
- 11.1 The go test Tool
- 11.2 Test Functions
- 11.3 Coverage
- 11.4 Benchmark Functions
- 11.5 Profiling
- 11.6 Example Functions
- Chapter 12: Reflection
- 12.1 Why Reflection?
- 12.2 reflect.Type and reflect.Value
- 12.3 Display, a Recursive Value Printer
- 12.4 Example: Encoding S-Expressions
- 12.5 Setting Variables with reflect.Value
- 12.6 Example: Decoding S-Expressions
- 12.7 Accessing Struct Field Tags
- 12.8 Displaying the Methods of a Type
- 12.9 A Word of Caution
- Chapter 13: Low-Level Programming
- 13.1 unsafe.Sizeof, Alignof, and Offsetof
- 13.2 unsafe.Pointer
- 13.3 Example: Deep Equivalence
- 13.4 Calling C Code with cgo
- 13.5 Another Word of Caution