Wenn eine Funktion zwei oder mehr Werte zurückgibt und ich einen der beiden in einer anderen Funktion verwenden möchte, wie mache ich das?

Ich habe eine Funktion xyz :

uint256 a;
uint256 b;
function xyz() internal view return(uint256,uint256){
return (a,b);
}

Nun möchte ich den ersten Rückgabewert in einer anderen Funktion verwenden (zB):

uint256 c;
function abc() public {
c += xyz().0; // c += a is desired
}

Was sollte die korrekte Syntax sein.

Antworten (1)

In Solidity können Sie einen oder alle der zurückgegebenen Werte ignorieren, indem Sie sie einfach nicht den Variablen zuweisen:

(uint a, ) = xyz();

Der obige Code würde nur den ersten zurückgegebenen Wert erhalten und den zweiten ignorieren.

(, uint b) = xyz();

Dieser Code würde nur den zweiten zurückgegebenen Wert erhalten.

uint256 c;
function abc() public {
 (uint a, ) = xyz();
 c += a;
}

So würdest du es mit deinem Beispiel machen.

Danke, das scheint in der Tat eine sehr einfache Lösung zu sein.