Byłem ciekawy, czy było to możliwe przy użyciu modułu Enum
, ponieważ odpowiedź Patricka Oscity opiera się na Comprehensions
, która wygląda jak zwykłe opakowanie dla modułu Enum
.
Odpowiedź brzmi: tak. Najpierw próbowałem z Enum.each
. Który tajemniczo wydrukował tylko ok
na ekranie, ale to właśnie robi Enum.each
; zawsze zwraca atom :ok
.
Wyobraziłem sobie, że Enum.map
byłby lepszym strzałem, ponieważ zwraca listę wyników. Spójrz:
<%= Enum.map(@list, fun(item) -> %>
<p><%= item %></p>
<% end) %>
EEx
działa prawie tak samo jak ERB
. W swoim przykładzie ERB
podajesz "blok", który jest analogiczny do funkcji lambda lub anonimowej, do funkcji each
. W moim przykładzie EEx
fn (item) ->
zajmuje miejsce do |item|
.
Teraz nie tylko można powtórzyć ponad Lists
, ale można eksperymentować z szerszą gamą funkcji, które wymagają anonimowej funkcji, która manipuluje szablonem.
"dla potrzeb pętli a ="? Masz na myśli <% = na tagu otwierającym? –
Tak, otwierający tag! –
Starałem się, aby było jaśniejsze. Możesz zaproponować edycję, jeśli możesz wymyślić lepszy sposób wyrażenia tego! :) –