好的,所以我试图尽可能多地处理这个系统,这是因为我已经把它压缩到了
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”)并离开事件和数据列表
是否有可能将其压得更厉害?提前谢谢。
答案 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