Dans la liste des courriels, je dois obtenir 2 valeurs:
Quel est le moyen idiomatique de coder cela dans Scala? Jusqu'à présent, j'ai: p> éditer: pourquoi il y a n'importe quel code>: nous utilisons gson pour la sérialisation JSON et convertissons toutes les collections à Java collections et transmettez-les à tout code> nous convient tout à fait. P> p>
5 Réponses :
Je voudrais probablement juste Cela ne donne pas d'exception si le courrier électronique principal n'est pas dans la liste (la liste est vide). P> P> goutte code> le premier élément (si vous êtes sûr que le premier élément est toujours le courrier électronique principal). Comme:
Apprenez-vous un Scalaz Strong>. Tout cela est disponible en un appel: démonstration: p> si non vide p> si vide: p> Le la valeur bien sûr, le zéro em> pour cela est juste Comment cela fonctionne-t-il? H2>
<^> code> Dit: Si cette liste est vide, renvoyez le type fort> zéro fort> pour le type défini par la fonction Type de retour à droite. Si la liste est non vide, appliquez la fonction sur em> p> nel code> est un non indépartie code>, que je peux appeler en toute sécurité tête code> et queue code> sans craindre qu'ils vont jeter une exception. Ma fonction renvoie un (option [a], liste [A]) code> p> (aucun , Nil) code> pour tout a code> p> p>
Est-ce encore une chose? L'opérateur ne semble plus exister.
Je suggère ceci laisse le premier courrier électronique dans une liste code> non un option code>, mais une carte , Produit] code> ne va pas vous faire beaucoup de bien de toute façon, n'est-ce pas? P> p>
Carte [String, tout]? Vous pourriez aussi bien simplement écrire php ...; -)
Voici une autre façon: p> vraiment - je n'aime pas toute l'approche - je ferais quelque chose comme ceci: p>
Pour les séquences, vous pouvez associer la tête et le reste comme si vous utilisez la liste voir aussi Quel est le moyen idiomatique de modèles de séquence de séquence de motifs? et Scala Motif correspondant sur des séquences autres que les listes . P> Tout comme Ruben, je ' D STORTY vous décourageez d'utiliser Scala's's CODE> S, il est même plus agréable: p>
mappe [chaîne, n'importe quel] code> ou des constructions similaires. Vous jetez tout ce que le système de type Scala vous donne. Il est facile d'obtenir des erreurs très difficiles à tracer. Demandez peut-être une autre question - décrire pourquoi vous utilisez mappe [chaîne, tout] code> maintenant et demandez comment il pourrait être amélioré. P> p>