솔리디티의 함수는 특이하게도 여러개의 값을 리턴할 수 있다.
위처럼 a, b, c
에 각각 1, 2, 3
을 할당할 수 있다.
만약 3개의 값 중 하나만 받고 싶다면 이렇게 한다.
이제 b에 2가 할당됐다.
솔리디티에서 문자열을 비교하려면 어떻게 해야할까?
솔리디티는 문자열 비교를 지원하지 않기 때문에 위처럼 코드를 작성하면 에러가 난다.
이는 keccak256 라는 해시 함수를 이용해서 해결할 수 있다.
(예전에 썼던 글이다.)
지금의 사이트들은 이같은 성질의 해시 함수를 사용해서 유저의 비밀번호를 관리한다. (해커에게 털려도 해커는 비밀번호를 알 수 없음)
참고로 keccak-256 은 2015년 8월에 미국국립표준기술연구소의 SHA3-256 표준으로 등록된 해시 알고리즘이라고 한다.
이제 우리는 keccak256을 이용해서 문자열을 비교할 수 있다. (고작 문자열을 비교하려고 사용하기엔 좀 거창하긴 하다.)
중간에 abi.encodePacked 라는 함수가 껴있다.
해시로 변경할 땐 따로 인코딩을 한번 더 해줘야 한다.
(remix 환경에선 그래야 하는데 자세히는 모르겠다.)
if 문은 자바스크립트와 똑같다.
아래의 함수는 매개변수로 0이 들어오면 0을, 아니면 1을 리턴하는 함수다.