De retour de deux et plus de valeurs à partir d'une méthode
Est-il possible de retourner plusieurs valeurs à partir de la méthode? Quelque chose comme ceci:
def someMethod()
return ["a", 10, SomeObject.new]
end
[a, b, c] = someMethod
Vous devez vous connecter pour publier un commentaire.
>>
invite de s'en aller.def foo_and_bar; ['foo', 'bar']; end
Ruby a une forme limitée de déstructuration lier:
Il dispose également d'une forme limitée de la structuration de bind:
Vous pouvez combiner ces deux formes comme:
Il y a plusieurs autres choses que vous pouvez faire avec déstructuration /structuration de se lier. Je ne peux pas montrer à l'aide de la splat opérateur (
*
) sur le côté droit. Je ne peux pas montrer de nidification (à l'aide de parenthèse). Je n'ai pas de montrer que vous pouvez utiliser déstructuration lier dans la liste des paramètres d'un bloc ou de la méthode.Voici qu'une mise en bouche:
Tout en retourner plusieurs valeurs est souvent utile, en général je trouve que c'est un pointeur vers un nouvel objet exigence.
Qui est, habituellement, je trouve que ceux qui les valeurs de retour sont intimement liées dans le sens ou le contexte et sont passés en tant que tel. Donc dans ces cas, je voudrais créer un nouvel objet pour les attacher ensemble. C'est un code particulier odeur j'ai appris à reconnaître.
chunk
n'existerait pas. Excellent principe si. Odeur de Code, en effet. Rock sur.Pour cela, vous pouvez renvoyer un tableau trop, comme
qui semble fonctionnellement équivalent à