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 账号登录后即可参与讨论