所以我在这里发现了这个问题,但是我对输出有一个问题,以及如何用if语句处理它.这就是我所拥有的,但它总是说这是真的,即使文件中不存在monitor这个词

if File.readlines("testfile.txt").grep(/monitor/)
  do something
end

它应该是像=="nil"这样的东西吗?我对ruby很陌生,不确定它的输出是什么.

推荐答案

我会使用:

if File.readlines("testfile.txt").grep(/monit或/).any?

if File.readlines("testfile.txt").any?{ |l| l['monit或'] }

Using readlines has scalability issues though as it reads the entire file into an array. Instead, using f或each will accomplish the same thing without the scalability problem:

if File.f或each("testfile.txt").grep(/monit或/).any?

if File.f或each("testfile.txt").any?{ |l| l['monit或'] }

See "Why is "slurping" a file not a good practice?" f或 m或e inf或mation about the scalability issues.

Ruby相关问答推荐

扫描不带空格的字符串中的单词

如何在 Ruby 中反转数字的字节顺序

当一个方法在没有参数的 return 关键字上提前退出时,返回什么值?

Ruby 避免类方法并保持其类型系统简单优雅的秘诀

为什么数组中的 splat 如此昂贵?

使用数组作为其中之一转换键和值

如何返回此 OOP Ruby 代码最后一行中的变量?

使用正则表达式判断用户输入的开头是否正好有两个大括号

Ruby 连接字符串并添加空格

将字符串与多个模式匹配

如何绘制 git repo 的代码行历史记录?

警告! PATH 设置不正确,通常这是由 shell 初始化文件引起的

Ruby 与计算机科学相关的 yield 特性

如何在 RSpec 2 中自动加载 spec_helper.rb

什么是匹配不在行尾的字符串的正则表达式?

ruby module_function 与包含模块

Ruby 模板:如何将变量传递到内联 ERB?

很好地格式化输出到控制台,指定选项卡的数量

Ruby 中的自然语言处理

给定一组参数,如何将这些参数发送到 Ruby 中的特定函数?