0

さて、私はこのシステムを可能な限りクランチしようとしています。これは、私がクランチした限りです

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」のようなものを検索し、これらのうちの1つだけを検索してから、分離して取り除きます「ターミネータ」(「\r\n\x00」) イベントとデータのリストを残す

それをさらに粉砕することは可能ですか?前もって感謝します。

4

3 に答える 3

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
于 2013-09-21T03:25:51.300 に答える
2

dataafterでは何もしないdata.each do |a|ので、ループ内の代入は関係ありません。あなたは簡単に行うことができます:

 data.split("\r\n\x00").map {|x| x.split(':')[0]}.each {|x| print x}
于 2013-09-20T23:53:38.527 に答える