2016-06-21 14 views
0

Das Ziel ist es, den so kommentierten Code zu kitten (zB Ruby magic).Vereinfachen Sie Ruby-Bedingung mit Regex und zwei Vars?

Ich lerne Ruby und es scheint jedes Mal, wenn ich etwas Code schreibe, hat Ruby eine Magie, die es vereinfachen und lesbarer machen kann.

Zum Beispiel (und nicht mit dem Code unten verbunden), anstatt eine Schleife zu schreiben, um über ein Array von Ganzzahlen zu iterieren, um die Summe zu erhalten, in Ruby sum = array.inject(:+) funktioniert magisch.

string = 'abcd' 
inn = '' 
out = '' 
letters = 'az' 

# Rubify below, por favor 
letters.split('').each do |l| 
    if string[/#{l}/i] 
    inn << l 
    else 
    out << l 
    end 
end 

Ideen?

+0

Was meinen Sie mit rubify? Das scheint schon in Ruby zu sein :-P –

+0

@DJ. Ich habe die Frage aktualisiert, um sie aufzuklären ... mit Hoffnung. –

+0

Etwas wie dieses: 'irb (main): 005: 0> inn = string.chars.select {| c | letters.chars.include? (c)} => ["a"] '? – squiguy

Antwort

1
string = 'abcd' 
letters = 'az' 
inn, out = letters.chars.partition{|char| string.include?(char)}.map!(&:join)