Je suis assez nouveau à Elixir, et en essayant de donner une nouvelle liste de structures en utilisant la compréhension de liste, et pour la vie de moi, je ne peux pas sembler avoir raison:Elixir Liste de comprendre pour créer une nouvelle liste de structures
holdings = ServiceX.update_holdings(
fn() -> for n <- 1..3, do: n end,
&(for n <- 1..100, do: %Holding {
client_id: &1,
company_id: n,
company: "---",
revenue: 0.0 }
))
update_holdings
prend dans une autre fonction qui retourne une liste de de struct. L'implémentation réelle appelle la base de données. Ce code est pour un test ExUnit, où j'essaie de retourner des données stubbed.
Semble que je reçois quelque chose d'évident ici. Voici l'erreur que je reçois quand je lance: mix test
** (Protocol.UndefinedError) protocol Enumerable not implemented for
%Holding{client_id: 1, company: "---", company_id: 1, revenue: 0.0}
Alors suis-je manque un module import, ou sinon comment puis-je produire une liste de struct en utilisant la compréhension de la liste?
Pouvez-vous poster le code réel? '& 1' n'est pas une syntaxe valide si c'est le code complet et que vous devriez recevoir une erreur à ce sujet. – Dogbert
@Dogbert élaboré comme demandé. Je vous remercie. –
Je ne vois pas de problème avec le code que vous avez publié. Je soupçonne que les problèmes viennent de la façon dont vous traitez les résultats de l'amusement. Vous devriez publier l'implémentation 'ServiceX.update_holdings'. –