본문 바로가기

Solidity

[ 솔리디티 이더리움 , 크립토좀비 ] requirea문

require문은 참이 아닐경우 에러메세지를 띄운다.

 

if문과 비슷하지만 If문은 조건에 걸렸을때 코드 블럭안에 있는 코드가 실행된다면 require문은 한줄로 조건이 끝나고 조건이 참이 아닐경우 코드가 종료된다.

 

솔리디티는 스트링 비교 기능이 없다. 그래서 keccak256로 암호화한 글자를 비교해야한다.

 

예를 들어 학생의 이름이 mapping으로 생성된 studentList안에 heini로 저장되어 있을때 이름이 heini인지 비교하려고 한다.

 

mapping(uint => string) studentList;

// studentList생성

 

mapping[1] = "heini";

// studentList에 key값은 1로, value값은 heini로 넣어줌

 

require(mapping[1] == "heini"); 가 아니라

require(keccak256(mapping[1]) == keccak256("heini"));

이렇게 값을 한번 암호화 한 값으로 변경해야한다.