Require
: 특정 조건이 참이 아닐 때 함수가 에러 메시지를 발생하고 실행을 멈추게 함
function sayHiToVitalik(string _name) public returns (string) {
// _name이 "Vitalik"인지 비교한다. 참이 아닐 경우 에러 메시지를 발생하고 함수를 벗어난다
// (참고: 솔리디티는 고유의 스트링 비교 기능을 가지고 있지 않기 때문에
// 스트링의 keccak256 해시값을 비교하여 스트링 값이 같은지 판단한다)
require(keccak256(_name) == keccak256("Vitalik"));
// 참이면 함수 실행을 진행한다:
return "Hi!";
}
sayHiToVitalik("Vitalik")로 이 함수를 실행하면 "Hi!"가 반환됨.
"Vitalik"이 아닌 다른 값으로 이 함수를 호출할 경우, 에러 메시지가 뜨고 함수가 실행되지 않음.
그러므로 require는 함수를 실행하기 전에 참이어야 하는 특정 조건을 확인하는 데 있어서 유용
require(msg.value == BET_AMOUNT, "Not enough ETH!");
이런식으로 에러메시지를 출력할 수도 있음.
' :D > block chain' 카테고리의 다른 글
[Solidity] Storage vs Memory (0) | 2022.02.15 |
---|---|
[Solidity] 상속 (0) | 2022.02.15 |
[Solidity] Msg.sender (0) | 2022.02.15 |
[Solidity] Mapping 과 Address (0) | 2022.02.15 |
[Solidity] Keccak256과 형 변환 (0) | 2022.02.15 |