Solidity 기본 문법 정리 (5)

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

BlockChain Develop

목록 보기
6/6
post-thumbnail

✏️ 여러개의 값을 리턴하는 함수

솔리디티의 함수는 특이하게도 여러개의 값을 리턴할 수 있다.

📌 반환값 전달받기

위처럼 a, b, c 에 각각 1, 2, 3 을 할당할 수 있다.

만약 3개의 값 중 하나만 받고 싶다면 이렇게 한다.

이제 b에 2가 할당됐다.


✏️ keccak256 (해시 함수)

솔리디티에서 문자열을 비교하려면 어떻게 해야할까?

솔리디티는 문자열 비교를 지원하지 않기 때문에 위처럼 코드를 작성하면 에러가 난다.

이는 keccak256 라는 해시 함수를 이용해서 해결할 수 있다.

(예전에 썼던 글이다.)

지금의 사이트들은 이같은 성질의 해시 함수를 사용해서 유저의 비밀번호를 관리한다. (해커에게 털려도 해커는 비밀번호를 알 수 없음)

참고로 keccak-256 은 2015년 8월에 미국국립표준기술연구소의 SHA3-256 표준으로 등록된 해시 알고리즘이라고 한다.

이제 우리는 keccak256을 이용해서 문자열을 비교할 수 있다. (고작 문자열을 비교하려고 사용하기엔 좀 거창하긴 하다.)

중간에 abi.encodePacked 라는 함수가 껴있다.
해시로 변경할 땐 따로 인코딩을 한번 더 해줘야 한다.
(remix 환경에선 그래야 하는데 자세히는 모르겠다.)


✏️ If 문

if 문은 자바스크립트와 똑같다.
아래의 함수는 매개변수로 0이 들어오면 0을, 아니면 1을 리턴하는 함수다.

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

0개의 댓글