title | actions | material | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Gérer plusieurs valeurs de retour |
|
|
Cette fonction getKitty
est le premier exemple que nous avons vu qui retourne plusieurs valeurs. Nous allons voir comment gérer cela :
function multipleReturns() internal returns(uint a, uint b, uint c) {
return (1, 2, 3);
}
function processMultipleReturns() external {
uint a;
uint b;
uint c;
// C'est comme ça que vous faites une affectation multiple :
(a, b, c) = multipleReturns();
}
// Ou si nous voulons seulement une des valeurs ci dessus :
function getLastReturnValue() external {
uint c;
// Nous pouvons laisser les autres champs vides :
(,,c) = multipleReturns();
}
Il est temps d'interagir avec le contrat CryptoKitties !
Nous allons créer une fonction qui récupère les gènes d'un chaton à partir du contrat :
-
Créez une fonction appelée
feedOnKitty
. Elle prendra 2 paramètresuint
,_zombieId
et_kittyId
et elle devra êtrepublic
. -
La fonction devra d'abord déclarer un
uint
nommékittyDna
.
Remarque : Dans notre
KittyInterface
,genes
est unuint256
- mais si vous vous rappelez de la leçon 1,uint
est un alias pouruint256
- c'est la même chose.
-
La fonction devra ensuite appeler la fonction
kittyContract.getKitty
avec_kittyId
et stocker lesgenes
danskittyDna
. N'oubliez pas -getKitty
retourne une tonne de variables. (10 pour être précis - je suis gentil, je les ai comptées pour vous !). Mais nous voulons récupérer seulement la dernière,genes
. Comptez vos virgules soigneusement ! -
Enfin, la fonction devra appeler
feedAndMultiply
avec_zombieId
etkittyDna
.