2016-04-07 7 views
0

ich einen Code haben, die wie folgt aussieht:Ruby-Hash verwenden in 'do' Schleife

hash = { 
    1000 => "john", 
    1001 => "mary", 
} 

list = File.foreach("list.txt").map { |line| line.split(' ') } 

out = list.each do |(file, user, time)| 
    puts "Some plain text #{file}, #{user}, #{time}" 
end 

In # {user} ich eine Nummer erhalten, die 1000 oder 1001.

Meine Frage sein kann, ist, , wie kann ich auf Informationen von Hash zugreifen, um sie anstelle von # {user} verwenden zu können. Nach meinem Verständnis sollte die endgültige Ausgabe so aussehen.

Einige Klartext, datei.txt, john, 00:00

Ich dachte darüber, wie dies zu tun, aber es hat nicht funktioniert.

puts "Some plain text #{file}, hash[user], #{time}" 
+0

Was möchten Sie erreichen? Wie sieht 'list.txt' aus? – mhutter

+0

12: 59-04/06/2016-UTC /tmp/file6.txt 1000 - nur solche Einträge – user2982789

Antwort

0

Verwenden String-Interpolation (wie Sie für file und time getan haben), es funktioniert für jeden gültigen Ruby-Ausdruck.

puts "Some plain text #{file}, #{hash[user]}, #{time}" 
+1

Beachten Sie, dass die Schlüssel des Hashs Ganzzahlen sind. –

Verwandte Themen