# goland-learning **Repository Path**: garcheng/goland-learning ## Basic Information - **Project Name**: goland-learning - **Description**: goland圣经例子demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-23 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go语言学习项目 这是一个Go语言学习项目,包含了《Go程序设计语言》书中各章节的示例代码。通过实践这些示例,可以系统地学习Go语言的基础知识和核心特性。 ## 项目结构 ``` goland-learning/ ├── ch1/ # 第一章示例 │ ├── dup1/ # 重复行检测(基础版) │ ├── dup2/ # 重复行检测(增强版) │ ├── dup3/ # 重复行检测(最终版) │ ├── echo1/ # Echo命令实现1 │ ├── echo2/ # Echo命令实现2 │ ├── echo3/ # Echo命令实现3 │ ├── fetch/ # URL获取工具 │ ├── fetchall/ # 并发URL获取 │ ├── helloworld/ # Hello World示例 │ ├── lissajous/ # Lissajous曲线生成器 │ ├── server1/ # HTTP服务器1 │ ├── server2/ # HTTP服务器2(带计数器) │ └── server3/ # HTTP服务器3(带动画) ├── ch2/ # 第二章示例 │ └── echo4/ # Echo命令实现4(带参数解析) ├── go.mod # Go模块文件 └── go.sum # 依赖校验文件 ``` ## 功能特性 ### 第一章:入门 - **dup1/dup2/dup3** - 演示标准输入中重复行的统计与显示 - **echo1/echo2/echo3** - 模拟Unix echo命令的不同实现方式 - **fetch** - 从URL获取内容并打印到标准输出 - **fetchall** - 并发获取多个URL,展示goroutine和channel的使用 - **helloworld** - Go语言经典入门程序 - **lissajous** - 在浏览器中生成动态Lissajous曲线动画 - **server1/server2/server3** - 展示不同功能的HTTP服务器实现 ### 第二章:程序结构 - **echo4** - 支持命令行参数的echo实现 ## 环境要求 - Go 1.17或更高版本 - 任意支持Go语言的操作系统(Windows/Linux/macOS) ## 快速开始 ```bash # 克隆项目 git clone https://gitee.com/garcheng/goland-learning.git cd goland-learning # 运行任意示例 cd ch1/helloworld go run main.go # 或在项目根目录运行特定示例 go run ./ch1/helloworld ``` ## 运行示例 ### Hello World ```bash go run ./ch1/helloworld ``` ### HTTP服务器 ```bash # 启动服务器 go run ./ch1/server1 # 在浏览器访问 http://localhost:8000 ``` ### Lissajous动画 ```bash go run ./ch1/lissajous # 在浏览器中查看动态曲线 ``` ### 并发获取URL ```bash go run ./ch1/fetchall http://gitee.com http://github.com ``` ## 学习要点 1. **基础语法** - 变量声明、函数定义、控制流程 2. **标准输入输出** - 文件操作和文本处理 3. **网络编程** - HTTP服务器和客户端开发 4. **并发编程** - goroutine和channel的实践应用 5. **图形输出** - 使用HTTP响应生成动态图像 ## 许可证 本项目仅供学习使用。 ## 参考资料 - 《The Go Programming Language》- Alan A. A. Donovan & Brian W. Kernighan - [Go语言官方文档](https://go.dev/doc/) - [Golang中文社区](https://studygolang.com/)