项目一:Hello World
在Go语言中,编写第一个程序通常是“Hello World”程序。这个项目将教你如何创建一个简单的程序,它会在屏幕上打印出“Hello, World!”。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
项目二:计算器
创建一个简单的计算器程序,支持加、减、乘、除四种基本运算。这个项目将帮助你理解如何使用Go的变量和运算符。
package main
import "fmt"
func calculate(operation string, a, b float64) float64 {
switch operation {
case "+":
return a + b
case "-":
return a - b
case "*":
return a * b
case "/":
if b == 0 {
fmt.Println("Error: Division by zero")
return 0
}
return a / b
default:
fmt.Println("Error: Unknown operation")
return 0
}
}
func main() {
a := 10.0
b := 5.0
fmt.Printf("Result: %v\n", calculate("+", a, b))
fmt.Printf("Result: %v\n", calculate("-", a, b))
fmt.Printf("Result: %v\n", calculate("*", a, b))
fmt.Printf("Result: %v\n", calculate("/", a, b))
}
项目三:待办事项列表
创建一个待办事项列表程序,使用文件系统来存储任务。这个项目将教你如何使用Go的文件操作。
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
file, err := os.OpenFile("tasks.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
reader := bufio.NewReader(os.Stdin)
for {
fmt.Print("Enter a task (or 'exit' to quit): ")
input, _ := reader.ReadString('\n')
input = strings.TrimSpace(input)
if input == "exit" {
break
}
_, err := writer.WriteString(input + "\n")
if err != nil {
fmt.Println("Error writing to file:", err)
return
}
}
writer.Flush()
}
项目四:HTTP服务器
创建一个简单的HTTP服务器,用于响应客户端请求。这个项目将教你如何使用Go的net/http包。
package main
import (
"fmt"
"net/http"
)
func homePage(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Welcome to the Home Page!")
}
func handleRequests() {
http.HandleFunc("/", homePage)
http.ListenAndServe(":8080", nil)
}
func main() {
handleRequests()
}
项目五:Web爬虫
创建一个简单的Web爬虫,用于爬取网页内容。这个项目将教你如何使用Go的net/http和regexp包。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
)
func main() {
url := "http://example.com"
response, err := http.Get(url)
if err != nil {
fmt.Println("Error fetching URL:", err)
return
}
defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Println("Error reading response body:", err)
return
}
regex := regexp.MustCompile(`href="([^"]+)"`)
links := regex.FindAllSubmatch(body, -1)
for _, link := range links {
fmt.Println("Found link:", string(link[1]))
}
}
以上是Go语言入门实战中的五个实用项目案例。每个项目都是学习和掌握Go语言基础的重要步骤。随着你的实践和探索,你将能够掌握更多高级概念和技术。祝你学习愉快!
