# ruby_study **Repository Path**: cutecuteyu/ruby_study ## Basic Information - **Project Name**: ruby_study - **Description**: ruby_study - **Primary Language**: Ruby - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-23 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ruby 学习项目 这是一个全面的 Ruby 学习项目,包含了从基础语法到高级特性的完整教程和示例代码。 ## 📚 项目内容 本项目包含以下主要学习模块: ### 1. Ruby 基础教程 (`ruby-tutorial.md`) 一份完整的 Markdown 教程文档,涵盖了 Ruby 入门的全部基础知识: - Ruby 简介和特点 - Ruby 安装指南(Windows/macOS/Linux) - 运行 Ruby 代码的方式 - 基础语法详解 - 常用开发工具 - 后续学习路线建议 **快速开始:** ```bash # 阅读教程 cat ruby-tutorial.md ``` --- ### 2. Ruby 基础语法教程 (`ruby_tutorial/`) 通过可执行的示例代码学习 Ruby 基础语法。每个主题都有独立文件,包含详细的中文注释。 #### 文件列表: | 文件 | 内容 | |------|------| | `00_main.rb` | 主入口文件,运行所有示例 | | `01_variables.rb` | 变量类型(局部变量、常量、全局变量、实例变量、类变量) | | `02_data_types.rb` | 数据类型(整数、浮点数、字符串、数组、哈希等) | | `03_input_output.rb` | 输入输出(puts、print、p、gets) | | `04_conditionals.rb` | 条件判断(if、unless、case、三元运算符) | | `05_loops.rb` | 循环(times、while、for、each) | | `06_methods.rb` | 方法(参数、返回值、可变参数、关键字参数) | | `07_classes.rb` | 类和对象(继承、访问控制、方法重写) | **运行方式:** ```bash # 运行所有示例 cd ruby_tutorial ruby 00_main.rb # 运行单个示例 ruby 01_variables.rb ``` --- ### 3. Ruby 模块系统深入 (`module_test/`) 全面学习 Ruby 的模块(Module)系统,这是 Ruby 最强大的特性之一。 #### 文件列表: | 文件 | 内容 | |------|------| | `00_main.rb` | 主入口文件,运行所有模块测试 | | `01_module_basics.rb` | 模块基础定义(常量、方法、实例方法、嵌套) | | `02_namespace.rb` | 模块作为命名空间(避免命名冲突、代码组织) | | `03_mixin.rb` | 模块混入(include 和 extend 的使用) | | `04_debug_logger.rb` | Debug 和 Logger 模块实现 | | `05_enumerable.rb` | Enumerable 内置模块(map、select、reduce 等) | | `06_comparable.rb` | Comparable 内置模块(对象比较) | | `07_require_include.rb` | require、include、extend 的区别 | | `08_advanced_usage.rb` | 模块高级用法(接口、回调、单例模式) | | `09_comprehensive.rb` | 综合实战示例 | **核心概念:** - **模块定义**:模块常量、模块方法、实例方法 - **命名空间**:组织代码、避免冲突 - **Mixin(混入)**:include(实例方法)vs extend(类方法) - **内置模块**:Enumerable、Comparable - **高级特性**:included 钩子、Refinements、动态创建 **运行方式:** ```bash # 运行所有模块测试 cd module_test ruby 00_main.rb # 运行单个测试 ruby 01_module_basics.rb ``` --- ### 4. Windows API 调用 (`ruby_win32/`) 学习如何使用 Ruby 调用 Windows API,实现系统级功能。 #### 文件列表: | 文件 | 内容 | |------|------| | `01_messagebox.rb` | 调用 MessageBox API(多种对话框类型) | | `02_virtualalloc.rb` | 调用 VirtualAlloc API(内存管理) | **技术要点:** - 使用 Fiddle 库调用 Windows DLL - UTF-16LE 宽字符编码处理 - 内存分配和管理 - Windows API 函数签名和参数类型 **运行方式:** ```bash cd ruby_win32 ruby 01_messagebox.rb # 显示各种消息框 ruby 02_virtualalloc.rb # 内存分配示例 ``` ⚠️ **注意**:这些示例仅适用于 Windows 系统。 --- ### 5. TCP 网络编程 (`ruby_net/`) 完整的 TCP 客户端-服务端通信示例,学习网络编程基础。 #### 文件列表: | 文件 | 内容 | |------|------| | `server.rb` | TCP 服务端(多线程、并发连接处理) | | `client.rb` | TCP 客户端(连接、发送消息、接收回复) | **功能特点:** - 多线程并发处理多个客户端 - UTF-8 编码支持中文传输 - 完整的异常处理和连接管理 - 交互式命令行界面 **运行方式:** ```bash # 终端1:启动服务端 cd ruby_net ruby server.rb # 终端2:启动客户端(可以启动多个) ruby client.rb ``` --- ## 🎯 学习路线建议 ### 初学者(1-2周) 1. 阅读基础概念 2. 运行基础语法示例 3. 动手修改代码,观察变化 ### 进阶学习(2-4周) 1. 深入学习模块系统 2. 理解 Mixin 机制 3. 掌握 Enumerable 和 Comparable 模块 ### 高级应用(按需学习) 1. Windows API 调用(系统编程) 2. 网络编程(TCP/UDP) 3. 元编程和反射 --- ## 📝 代码特点 ### 详细注释 所有代码都包含详细的中文注释,解释: - 语法含义 - 参数说明 - 返回值解释 - 使用示例 - 注意事项 ### 实践导向 每个示例都可以直接运行,输出清晰的结果,方便: - 理解概念 - 调试验证 - 扩展修改 ### 渐进式学习 内容由浅入深,从基础到高级,适合: - 零基础入门 - 系统学习 - 查阅参考 --- ## 🔧 环境要求 ### Ruby 版本 - Ruby 2.5+ (推荐 Ruby 3.x) ### 依赖库 #### 基础教程和模块测试 - 无需额外依赖,使用 Ruby 标准库 #### Windows API 示例 ```bash # Fiddle 是 Ruby 标准库,无需安装 # 可选:Win32API(已废弃,某些旧系统可用) gem install win32-api ``` #### 网络编程 - 使用 Ruby 标准库的 `socket`,无需额外安装 --- ## 📂 项目结构 ``` NEWTEST/ ├── README.md # 本文件 ├── ruby-tutorial.md # 基础教程文档 ├── ruby_tutorial/ # 基础语法示例 │ ├── 00_main.rb # 主入口 │ ├── 01_variables.rb # 变量 │ ├── 02_data_types.rb # 数据类型 │ ├── 03_input_output.rb # 输入输出 │ ├── 04_conditionals.rb # 条件判断 │ ├── 05_loops.rb # 循环 │ ├── 06_methods.rb # 方法 │ └── 07_classes.rb # 类和对象 ├── module_test/ # 模块系统教程 │ ├── 00_main.rb # 主入口 │ ├── 01_module_basics.rb # 模块基础 │ ├── 02_namespace.rb # 命名空间 │ ├── 03_mixin.rb # 混入机制 │ ├── 04_debug_logger.rb # 调试和日志 │ ├── 05_enumerable.rb # Enumerable模块 │ ├── 06_comparable.rb # Comparable模块 │ ├── 07_require_include.rb# require vs include │ ├── 08_advanced_usage.rb # 高级用法 │ └── 09_comprehensive.rb # 综合示例 ├── ruby_win32/ # Windows API 示例 │ ├── 01_messagebox.rb # 消息框 │ └── 02_virtualalloc.rb # 内存分配 └── ruby_net/ # 网络编程示例 ├── server.rb # TCP服务端 └── client.rb # TCP客户端 ``` --- ## 🚀 快速开始 ### 1. 克隆或下载项目 ```bash # 如果使用 git git clone cd NEWTEST # 或直接解压下载的文件 cd NEWTEST ``` ### 2. 检查 Ruby 版本 ```bash ruby --version ``` ### 3. 运行第一个示例 ```bash cd ruby_tutorial ruby 00_main.rb ``` ### 4. 开始学习 - 从 `ruby-tutorial.md` 开始阅读 - 运行 `ruby_tutorial/` 中的示例代码 - 逐步学习 `module_test/` 中的高级特性 - 探索 `ruby_win32/` 和 `ruby_net/` 的实际应用 --- ## 💡 学习建议 1. **动手实践**:不要只是阅读,一定要运行和修改代码 2. **实验探索**:尝试修改参数,观察输出变化 3. **编写注释**:用自己的话添加注释,加深理解 4. **构建项目**:尝试用学到的知识编写小项目 5. **查阅文档**:遇到问题查阅官方文档 --- ## 📖 推荐资源 ### 官方文档 - [Ruby 官方网站](https://www.ruby-lang.org/) - [Ruby 中文文档](https://www.ruby-lang.org/zh_cn/) - [Ruby 核心文档](https://docs.ruby-lang.org/) ### 社区资源 - [Ruby China](https://ruby-china.org/) - 中文 Ruby 社区 - [Ruby Monstas](https://rubymonstas.org/) - 免费在线教程 - [Launch School](https://launchschool.com/) - 系统化学习 ### 书籍推荐 - 《Ruby 编程语言》- 权威参考书 - 《Ruby 元编程》- 高级特性 - 《Ruby on Rails 教程》- Web 开发 --- ## 🤝 贡献 欢迎提出问题和改进建议: - 报告错误 - 建议新主题 - 提交代码改进 - 完善文档 --- ## 📄 许可 本项目仅供学习和参考使用。 --- ## 🎓 适用人群 - Ruby 初学者 - 想系统学习 Ruby 的开发者 - 需要参考 Ruby 代码示例的程序员 - 教学 Ruby 的教育工作者 --- **祝您学习愉快!Happy Coding! 🎉**