J'ai une entrée quelque chose comme ceci: Ce que je voudrais faire, est de créer un ensemble de nouvelles variables, laisse Un peu de recherche m'a aidé en trouvant le Modèles de séquence à droite à droite , que j'ai pu utiliser: p> Ce que je ne comprends pas, c'est que ça ne marche pas si je l'essaie avec un tuple? Je reçois une erreur pour ceci: p> Le message d'erreur est le suivant: p> "1 2 3 4 5" code>.
a code> est la première de la séquence,
B code> le second, et
xs code> le reste en tant que séquence (évidemment je peux le faire dans 3 lignes différentes, mais je Voudrais utiliser plusieurs missions). P>
<console>:1: error: illegal start of simple pattern
5 Réponses :
def unapply[T1, T2, T3](x: Product3[T1, T2, T3]): Option[Product3[T1, T2, T3]] = Some(x)
Je ne suis pas un expert en Scala par aucun moyen, mais je pense que cela pourrait avoir à voir avec le fait que les tuples de Scala ne sont que du sucre syntatique pour les classes allant du tuple2 à tuple22. P>
Signification, tuples à Scala ne sont pas des structures flexibles telles que dans Python ou dans d'autres langues du tri, de sorte qu'il ne peut donc pas vraiment créer un tuple avec un inconnu a priori em> taille. P>
Ahh, maintenant vous en parlez, je peux aussi rappeler que j'ai lu à ce sujet (je me souviens de tuple22 code>, mais le point est le même, il est strictement limité).
Autres réponses Vous dire pourquoi vous ne pouvez pas utiliser des tuples, mais que des tableaux sont maladroits à cette fin. Je préfère les listes:
C'est plus propre
La réponse est la suivante:
c = "3" vs. c = List("3","4","5")
J'ai affiché apparemment quelques secondes après @rex. Bien, bon de savoir que j'avais la même pensée qu'un scala "lourd" ;-)
Nous pouvons utiliser la correspondance de motif pour extraire les valeurs de la chaîne et l'attribuer à plusieurs variables. Cela nécessite deux lignes cependant.
Modèle dit qu'il y a 3 chiffres ([0-9]) avec espace entre les deux. Après le 3ème numéro, il peut y avoir du texte ou non, que nous ne nous soucions pas de (. *). P> sortie p>