Ich habe einige Zweifel über die Unterschiede zwischen 'für' und 'jedem' Iteratoren auf Ruby on Rails.Unterschied zwischen 'for' und 'each' Iteratoren auf Ruby on Rails
Ich habe diesen Fall, wie ist die beste Praxis dafür?
Def (Methode), die in der Datei application_helper.rb:
def milestone_icons
icons = ["", "icon-world", "icon-star-twohdd-o", "icon-users", "icon-notification", "icon-clock", "icon-eye", "icon-like-filled", "icon-credit-card", "icon-bell" ]
end
vorliegende Wählen in der haml Datei:
%select.js-select-icons{style: 'width: 50px', name: 'milestone[icon]'}
- for icon in milestone_icons do
%option{value: icon, type: "icon", selected: (@generic.icon == icon)}
= "<i class='#{icon}'></i>".html_safe
die Art, wie Sie es hier verwenden ('für Symbol in milestone_icons') ist das gleiche wie das Schreiben von' milestrone_icons.each do | icon | '. –
Ok, danke, aber für Ruby, haben Sie einen Unterschied? Best Practice für diese Art von Bedingung? –
Enumeratoren werden häufig Loops vorgezogen (einschließlich 'For'-Loops), da bei ersterem der Wert des Iterators auf den Block beschränkt ist, wo es für alle sichtbar ist, wenn eine Schleife verwendet wird. Zum Beispiel: 'für n in [1,2,3] tun; setzt n; Ende; n # => 3 '(nach dem Ausdrucken von "1", "2", "3"). Im Gegensatz dazu ist "[1,2,3] .each {| n | setzt n}; n # => NameError: undefinierte lokale Variable oder Methode 'n' für main: Object'. Viele (die meisten?) Rubies * benutzen niemals 'for' Loops. Ich habe * nie * einen benutzt, nicht einmal! :-) –