견고하게 여러 값을 반환하는 방법은 다음과 같습니다.
4029 단어 web3blockchainbeginners
contract sample {
function a() returns (uint a, string c){
// wrap all returned
// values in a tuple
return (1, "ss");
}
function b(){
uint A;
string memory B;
//A is 1 and B is "ss"
(A, B) = a();
//A is 1
(A,) = a();
//B is "ss"
(, B) = a();
}
}
코드의 함수
a()
는 여러 값을 반환하고 이를 달성하기 위해 반환하려는 모든 값을 튜플 "()"로 간단히 래핑합니다.따라서
a()
는 1과 문자열 "ss"를 모두 반환합니다. 또한 함수 선언의 returns
부분에서 유형을 선언해야 합니다.a()에서 두 값 모두 추출
그렇다면 이러한 값을 어떻게 추출합니까?
음, 함수
b()
가 하는 일입니다. a()
를 호출하면 추출하려는 값의 수와 동일한 변수가 있는 튜플에 결과를 할당할 수 있습니다.function b(){
//...
(A, B) = a();
}
이것은 A에 1을 할당하고 B에 "ss"를 할당합니다. 단일 값, 아마도
a()
에 의해 반환된 첫 번째 값이 필요한 경우 어떻게 합니까?a()에서 단일 값 추출
단일 값을 추출하려면 다음과 같이 하십시오.
function b(){
// not all elements have to be
// specified (but the number must match).
(,B) = a();
}
두 번째 반환 값인 "ss"를 B에 할당해야 합니다. 튜플의 첫 번째 값을 어떻게 비워 두었는지 관찰하십시오. B를 추출하려면 그렇게 해야 합니다. 첫 번째 값을 추출하는 경우에도 마찬가지입니다.
function b(){
// not all elements have to be
// specified (but the number must match).
(A,) = a();
}
마무리
이것이 여러 값을 반환하는 함수를 작성하고 코드에서 해당 값을 사용하는 방법입니다. 도움이 되었기를 바랍니다. 빠르고 간결한 내용을 읽어주셔서 감사합니다. 이 지식으로 무엇을 하는지 보고 싶어요. 응원합니다.
코하
Reference
이 문제에 관하여(견고하게 여러 값을 반환하는 방법은 다음과 같습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koha/heres-how-to-return-multiple-values-in-solidity-1oo9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)