Skip to content

main

文件信息

  • 📄 原文件:main.go
  • 🔤 语言:go

完整代码

go
package main

import "fmt"

// ============================================================
//                      小项目实践
// ============================================================
// 这些小项目综合运用了前面学习的 Go 知识
// 每个项目都可以独立运行和扩展

func main() {
	fmt.Println("===========================================")
	fmt.Println("          Go 语言小项目实践")
	fmt.Println("===========================================")

	// 项目1: 命令行 Todo 应用
	// 知识点: 结构体、切片、文件操作、JSON
	runTodoApp()

	// 项目2: 单词计数器
	// 知识点: map、排序、字符串处理
	runWordCounter()
	runCharCounter()

	// 项目3: 简单缓存
	// 知识点: map、互斥锁、goroutine、time
	runSimpleCache()
	runConcurrentCounter()

	fmt.Println("\n===========================================")
	fmt.Println("          所有项目运行完成")
	fmt.Println("===========================================")

	// 提示更多练习
	fmt.Println(`
更多练习建议:

1. Todo 应用扩展:
   - 添加优先级
   - 添加分类/标签
   - 添加截止日期
   - 导出为不同格式

2. 单词计数器扩展:
   - 支持停用词过滤
   - 支持词干提取
   - 生成词云数据
   - 多文件处理

3. 缓存扩展:
   - LRU 淘汰策略
   - 容量限制
   - 持久化到文件
   - 分布式缓存

4. 其他项目建议:
   - URL 短链接服务
   - 简单 HTTP API
   - 文件监控工具
   - 端口扫描器
   - 日志分析器
`)
}

// ============================================================
//                      项目知识点总结
// ============================================================
//
// 项目1 - Todo CLI:
// - 结构体定义和方法
// - 切片操作(添加、删除)
// - JSON 序列化/反序列化
// - 文件读写
// - 用户输入处理
//
// 项目2 - 单词计数器:
// - map 使用
// - 正则表达式
// - 切片排序(sort.Slice)
// - Unicode 处理
// - 字符串处理
//
// 项目3 - 简单缓存:
// - sync.Mutex/RWMutex
// - goroutine
// - time.Ticker
// - 接口类型 interface{}
// - 并发安全设计

💬 讨论

使用 GitHub 账号登录后即可参与讨论

基于 MIT 许可发布