第一章:Go语言简介
1.1 Go语言的起源与发展
Go语言,也被称为Golang,是由Google的Robert Griesemer、Rob Pike和Ken Thompson于2009年共同设计的一种编程语言。它的设计初衷是为了解决当时在软件开发中遇到的一些问题,如编程效率低、系统性能不足等。Go语言以其简洁、高效、并发处理能力强等特点迅速在编程界崭露头角。
1.2 Go语言的特点
- 简洁性:Go语言的语法简洁,易于学习和使用。
- 并发处理:Go语言内置了并发编程的支持,使得并发编程变得简单。
- 高性能:Go语言的编译器会将源代码编译成高效的机器码,从而提高程序性能。
- 跨平台:Go语言可以在多种操作系统和硬件平台上运行。
第二章:Go语言基础
2.1 数据类型
Go语言支持多种数据类型,包括基本数据类型(如int、float、string等)和复合数据类型(如数组、切片、映射等)。
package main
import "fmt"
func main() {
var a int = 10
var b float32 = 3.14
var c string = "Hello, Go!"
fmt.Println(a, b, c)
}
2.2 控制结构
Go语言提供了if、switch、for等控制结构,用于控制程序的执行流程。
package main
import "fmt"
func main() {
if a := 10; a > 5 {
fmt.Println("a大于5")
} else {
fmt.Println("a不大于5")
}
}
2.3 函数
Go语言中的函数定义简单,支持多种参数类型和返回值。
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
result := add(10, 20)
fmt.Println(result)
}
第三章:Go语言实战案例
3.1 HTTP服务器
使用Go语言编写一个简单的HTTP服务器,实现基本的GET和POST请求处理。
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
fmt.Fprintf(w, "Hello, World!")
} else if r.Method == "POST" {
fmt.Fprintf(w, "Received POST request")
} else {
fmt.Fprintf(w, "Unsupported method")
}
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
3.2 并发下载
使用Go语言的并发特性,实现一个简单的并发下载器。
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func download(url string, dest string) {
resp, err := http.Get(url)
if err != nil {
fmt.Println("Error downloading file:", err)
return
}
defer resp.Body.Close()
out, err := os.Create(dest)
if err != nil {
fmt.Println("Error creating file:", err)
return
}
defer out.Close()
_, err = io.Copy(out, resp.Body)
if err != nil {
fmt.Println("Error writing file:", err)
return
}
fmt.Println("Download completed")
}
func main() {
download("https://example.com/file.zip", "downloaded.zip")
}
第四章:总结
通过学习Go语言,我们可以轻松入门并高效开发各种应用程序。掌握Go语言的关键在于理解其语法、特性和实战案例。希望本书能帮助你更好地掌握Go语言,解锁编程技能。
