Solidity 기본 문법 정리 (3)

코딩하는 남자·2022년 5월 6일
0

BlockChain Develop

목록 보기
4/6
post-thumbnail

✏️ Address

솔리디티에서 함수 호출은 항상 외부 호출자가 시작한다. 컨트랙트는 누군가가 컨트랙트의 함수를 호출할 때까지 블록체인 상에서 아무 것도 안하고 있을 것이다. 따라서 함수를 호출한 사람은 무조건 존재하고 그 사람의 주소를 코드 내에서 address 자료형으로 받을 수 있다.

msg.sender

사용자의 addressmsg.sender 전역 변수로 호출할 수 있다.
(마치 자바스크립트의 window.innerwidth 같이 항상 존재하는 값이다.)

위처럼 address 자료형으로 선언한 변수가 사용자의 주소값을 가리키도록 할 수 있다.
id 변수에는 0x5B38Da6a791c568442dCfcB03FcB815f66beddC4 형태의 값이 담긴다.


✏️ Mapping

타 언어의 딕셔너리, 해시 테이블 자료구조가 솔리디티에서 매핑이라는 이름으로 제공된다. 파이썬, 자바스크립트와 다르게 솔리디티의 매핑은 KeyValue 의 타입을 미리 선언해야 한다.

위처럼 Key 의 타입으로 address 를 사용할 수도 있다.

매핑의 값을 수정하는 방법도 다른 언어들과 비슷하다.


✏️ Require

require 를 활용하면 특정 조건을 검사하고 그에 따라 함수 진행 여부를 결정할 수 있다. 만약 require 구문을 통과하지 못하면 에러메세지와 함께 함수가 종료된다.

division 함수는 매개변수로 _a_b 를 받아서 _a 나누기 _b 를 리턴하는 함수다. 만약 _b 로 0이 들어올 것을 대비해서 require 로 중간에 체크해준다.

profile
"신은 주사위 놀이를 하지 않는다."

0개의 댓글