试图将ruby代码压缩到最小的行

时间:2013-09-20 23:47:05

标签: ruby

好的,所以我试图尽可能多地处理这个系统,这是因为我已经把它压缩到了

def process(data)
    data = data.split("\r\n\x00").map{|x| x.split(":")}
    data.each do |a|
        event,data = a[0],a[1..-1]
        print event
    end

end

当你输入一个字节(在我的情况下来自套接字)时它会做什么它会搜索类似“event:eventdata \ r \ n \ x00”之类的东西,然后它们会分开并且摆脱“终结者”(“\ r \ n \ x00”)并离开事件和数据列表

是否有可能将其压得更厉害?提前谢谢。

3 个答案:

答案 0 :(得分:2)

如果你害怕用完LOC,那么请使用这个单行。

def process(data)
  data.split("\r\n\x00").map{|x| x.split(":")}.each {|a| event,data = a[0],a[1..-1]; print event}
end

希望你能看到最简洁的代码并不总是最好的代码。

我认为“压缩”一段代码没有实际意义。也许仅限娱乐。生产代码应该是可读的,这是最重要的。

答案 1 :(得分:2)

data后你永远不会对data.each do |a|做任何事情,所以循环中的赋值是无关紧要的。你可以这样做:

 data.split("\r\n\x00").map {|x| x.split(':')[0]}.each {|x| print x}

答案 2 :(得分:2)

def process(data)
  data.split("\r\n\x00").each{|x| print x[/[^:]*/]}
end

split

def process(data)
  data.split("\r\n\x00").map{|x| x.split(":", 2)}.each{|event, _| print event}
end