加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

快速建议:如何用Ruby编写?

发布时间:2020-12-17 04:20:39 所属栏目:百科 来源:网络整理
导读:我是一名 Java / C程序员,Ruby是我的第一个脚本语言.我有时会发现我并没有像在某些方面那样富有成效地使用它,例如: 目标:仅解析文件中的某些行.我要使用的模式是有一条非常大的线,大小超过15,其余的线肯定更小.我想忽略之前(包括)大行的所有行. def do_som
我是一名 Java / C程序员,Ruby是我的第一个脚本语言.我有时会发现我并没有像在某些方面那样富有成效地使用它,例如:

目标:仅解析文件中的某些行.我要使用的模式是有一条非常大的线,大小超过15,其余的线肯定更小.我想忽略之前(包括)大行的所有行.

def do_something(str)
   puts str
end


str = 
'ignore me
me too!
LARGE LINE ahahahahha its a line!
target1
target2
target3'

flag1 = nil
str.each_line do |line|
  do_something(line) if flag1
  flag1 = 1 if line.size > 15
end

我写了这个,但我认为它可以编写得更好,也就是说,必须有一个比设置标志更好的方法.关于如何编写漂亮的Ruby系列的建议也值得欢迎.

注意/澄清:我需要在第一次出现LARGE LINE后打印所有行.

解决方法

str.lines.drop_while {|l| l.length < 15 }.drop(1).each {|l| do_something(l) }

我喜欢这个,因为如果你从左到右阅读它,它几乎就像你原来的描述:

将字符串拆分为行并删除短于15个字符的行.然后删除另一行(即第一行超过14个字符).然后对剩下的每一行做点什么.

你甚至不需要必须理解Ruby,或者根本不需要编程才能验证这是否正确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读