ich so durch Variablen mit Namen wiederholen müssen:Looping durch Variablen in Ruby
variable1
variable2
variable3
...
variable15
Wie kann ich das tun?
ich so durch Variablen mit Namen wiederholen müssen:Looping durch Variablen in Ruby
variable1
variable2
variable3
...
variable15
Wie kann ich das tun?
Vor allem scheint es wie ein sehr schlechtes Design. Wenn Ihre Daten iteriert werden sollen, müssen Sie eine geeignete Datenstruktur verwenden (Ruby hat Hash
und Array
in der Standardbibliothek).
Sie können es aber tun. Es gibt eval
und ein bisschen mehr idiomatische local_variable_get
Methoden, die helfen könnten.
v1 = 1
v2 = "chair"
v3 = :boo
(1..3).each do |i|
puts binding.local_variable_get("v#{i}")
end
#=> 1
#=> chair
#=> boo
Aber wieder sind sie beide sehr spezielle Werkzeuge und sie sollen in diesem Fall nicht verwendet werden. Sie sollten Ihren Ansatz überdenken. Wenn die Anzahl der Variablen nicht groß ist und jede Variable einen eigenen Sinn hat, können Sie vor dem Iterieren ein Array erstellen.
[v1, v2, v3].each{ |v| puts v }
Anderer Ansatz ist es, ein Array
nur von Anfang an zu verwenden. Stattdessen nummerierte Verwendung von Variablen finden Sie Indizes der Array
verwenden:
my_data = []
my_data[0] = 1
my_data[1] = "chair"
my_data[2] = :foo
my_data.each{ |v| puts v }
Oder können Sie eine Hash
verwenden, wenn Sie Ihre Daten soll namentlich genannt werden:
my_data = {}
my_data[:first] = 1
my_data[:second] = "chair"
my_data[:third] = :foo
my_data.each{ |k, v| puts k, v }
Erste Schleife hat es für mich gemacht. Ich kann Array nicht wirklich verwenden, aber ich will es hier nicht erklären, weil das Problem tief in meinem Programm liegt und es Limitierung ist. – Kappa
[so] nicht ein Code ist, Schreibservice. Wenn Sie möchten, dass jemand Ihre Arbeit für Sie erledigt, gibt es viele Stellen im Internet, an denen Sie Programmierer einstellen können. Ich schicke Ihnen gerne ein Angebot! Sie müssen das Problem, das Sie haben, beschreiben, die Schritte, die Sie unternommen haben, um das Problem zu lösen, Ihren Code zeigen, die Fehlermeldung, die Sie erhalten, alle Warnungen, die Sie erhalten, zeigen uns die erwarteten und tatsächlichen Ergebnisse aus Ihrem Code Testfälle und eine Spezifikation für das, was Ihr Code tun sollte. Kurz gesagt, Sie müssen ein [mcve] bereitstellen. Sie sollten auch [fragen] lesen und die [Tour] machen. –
Die Anzahl der Variablen und ihre Namen geben an, dass Sie ein Array oder einen Hash zum Speichern der Werte verwenden sollten. – Stefan