Ruby is really Niubility in some ways.
《Programming Ruby 2ed》中文版这本书的源代码在网站上有下载,但是由于翻译过,并且代码很零碎,有1600多个源代码文件,而且源文件其中的页数已经与中文版的页数不相符了。为了搜索到包含指定的字符串的文件,决定用ruby自己动手写一个,经过多次重构,最后的代码如下:
class BriefExampleCodeFinder
EXP_CODE_DIR="E:/MyCode/MyRubyCode/Programming Ruby/src"
def locate(search_reg)
result = Array.new
Dir.foreach(EXP_CODE_DIR)\
{ |orgFile| result.push( EXP_CODE_DIR+'/'+orgFile) \ #向数组中置入符合条件的文件
if (File.file?(EXP_CODE_DIR+'/'+orgFile) \ #判断是否为文件?有可能是目录
&& File.open(EXP_CODE_DIR+'/'+orgFile).grep(search_reg).length>0) } #用正则表达式完成文件中内容的匹配
return result
end
end
其中红字部分在RUBY中作为一行代码处理,
看出来了么,两行代码搞定!!!
RUBY在文本处理和循环方面的能力真是厉害啊!!!
不过这样好像带来了可读性的问题,但是熟悉RUBY的语法之后,这些应该不是问题吧
p.s,可能有人会考虑到文件的打开和关闭涉及到的异常问题,在RUBY中,对File或IO来说,调用foreach后文件会自动关闭,不需要开发人员进行额外的处理。但是Dir.foreach,是否会自动关闭目录流或文件流呢?这个问题待考,也希望有高人知道的,说一声。
分享到:
相关推荐
- **IRB**:IRB是一个强大的交互式Ruby shell,可以帮助开发者测试代码片段,了解Ruby语法和API。 - **Pry**:Pry是IRB的一个扩展,提供更丰富的功能和更好的调试体验,如代码高亮、命令历史等功能。 ##### 5. 语法...
Ruby/tk作为一种强大的GUI开发工具,不仅可以用于创建简单的应用程序,还可以构建复杂的用户界面。通过学习如何引入库、创建根窗口、启动事件循环以及使用布局管理器等基本操作,开发者可以快速上手Ruby/tk并进一步...
Ruby Ruby Ruby Ruby Ruby Ruby
与我们的好友Ruby分享一些爱! 对所有花时间创建和维护我们使用的开源软件的仁慈的人表示感谢! 问题 您是否曾经想过有时要说谢谢您有多重要? 回复好心的话是多么高兴! 尤其是当某些东西对您来说是一种爱好时,...
Ruby 是一种高级的、面向对象的脚本语言,具有灵活性和流行度,特别适合 Web 开发。下面是一些 Ruby 的基础知识和常用指令,以及一些开发资源和项目示例。 Ruby 基础知识 安装 Ruby 使用 RubyInstaller(Windows) ...
Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...
Ruby是一种强大的、面向对象的脚本语言,广泛用于Web开发、服务器端编程和各种应用程序。在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求...
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
Ruby是一种简洁而功能强大的编程语言,由日本的松本行弘(Yukihiro "Matz" Matsumoto)在1993年开发,并于1995年公开发布。Ruby语言设计之初就非常注重开发人员的编程体验,它拥有自然、表达性强的语法,易于阅读和...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程将深入探讨Ruby的基础语法,并介绍如何下载、安装Ruby,以及使用Ruby教程中文版进行学习。 首先,让我们从Ruby的...
它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能,同时保持Ruby语言的优雅和简洁。这个项目在设计时特别注重与TensorFlow的相似性,以便于熟悉TensorFlow的开发者能快速上手。 **1. 纯Ruby实现** Ruby-...
5. **元编程**:Ruby提供了强大的元编程能力,允许在运行时修改和创建代码。 #### 第二章:Ruby编程环境 安装Ruby是开始学习的第一步: - **在Windows上**:你可以通过RubyInstaller下载并安装适合你系统的Ruby...
Ruby-Mail是一个强大的Ruby库,专为处理电子邮件而设计。这个库使得在Ruby应用程序中创建、解析、发送和接收邮件变得轻而易举。Mail库提供了丰富的功能,包括解析MIME(多用途互联网邮件扩展)格式的邮件,支持附件...
Ruby是一种强大的动态编程语言,广泛应用于Web开发,脚本编写,服务器管理等领域。为了在没有外网连接的环境中搭建Ruby环境,你需要提前下载并准备相关的安装包。在提供的压缩包中,包含了三个关键文件:`ruby-2.7.2...
3. 新的工具和武器:Ruby和水晶可以被用来制造更强大或具有独特能力的工具和武器。例如,Ruby剑可能具有更快的攻击速度,而水晶工具可能带有特殊效果。 4. 魔法系统:RubyCraft可能引入了一种基于Ruby和水晶的魔法...
RUBY RAILS INSTALLRUBY RAILS INSTALLRUBY RAILS INSTALL The Best Ruby Rails Server!
Gearman-ruby 这是什么? 这是用于分布式作业系统的纯Ruby库。 需要做什么? 更多测试,一些代码清除。 这到底是什么 目前,该库对Ruby应用程序具有客户端和工作程序支持。 入门 客户 一个非常简单的客户端,它...
vim-ruby-refactoring, 在vim中,用于 ruby的重构工具 ! 用于Vim的 ruby-重构工具我喜欢 vim 当我开发软件的时候,它是我的选择编辑器。目前( 至少在过去的4年中) 主要使用 ruby 编程语言。在开发过程中,我一直...
Ruby是一种强大的、面向对象的编程语言,以其简洁的语法和灵活的编程哲学而闻名。"ruby books"这个标题暗示了我们将探讨的是与Ruby语言相关的书籍资源,这些书籍可能涵盖了从初学者入门到高级开发者的深入研究等各种...
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby