크립토좀비 솔리디티 #6 - 함수(Function) 편

    본 포스팅은 크립토좀비의 레슨1 챕터7 (함수 편)의 내용을 설명한 내용입니다. 크립토좀비는 룸 네트워크(Loom Network)라는 블록체인 업체가 만든 강의 및 게임입니다. 매우 재미있고 쉽게 솔리디티(Solidity)를 배울 수 있는 가이드를 제공합니다.




    함수(Function)


    함수는 수학시간에 배웠던 함수 바로 그 함수가 맞습니다. 일반적으로 어떠한 값이 들어갔을 때, 특정 로직이후로 다음 값이 마법처럼 나타나는 것이 함수입니다. 



    위 그림은 펑션을 매우 잘 설명을 한 것인데요. 쉽게 어떠한 값을 넣었는데 출력되는 값이 내부 알고리즘으로 인해서 바뀌는 것이죠. 펑션은 어려운 알고리즘이 들어갈 수도 있고, 아니면 너무 간단해서 펑션을 사용해도 되는 건가 싶은 것도 있을 수 있습니다.



    위 내용은 크립토좀비의 1-7 강좌의 캡쳐 화면인데요. 보는 것과 같이 function이라는 명령어 다음에 함수명을 적고 괄호 안에 인자값들을 적을 수 있습니다. 해석을 하자면, eatHamburgers라는 함수명에는 2개의 인자(파라미터)를 받을 수 있는데 첫번째 값은 문자형으로 변수명은 _name으로 짓고, 두번째 값은 양수형으로 _amount라는 이름으로 받습니다.


    eatHamburgers라는 것을 호출하기 위해서는 무조건 2개의 인자값이 필요하며, 첫번째로 이름, 두번째로 액수 값을 받겠다 이런 의미입니다. 즉 함수를 만들기 위해서는 아래 설명처럼 함수명과 인자값들로 이루어져야 합니다.


    function 함수명(인자값1, 인자값2, ... 인자값 N) {

    }


    다만, 함수명은 필수로 적어야 하지만 인자값은 아무것도 안 적어도 상관 없습니다. 예를 들어, 어떠한 펑션을 호출하면 주소의 첫번째 값을 가져와라라는 펑션이 있다면 인자값은 존재하지 않을 것이니 이럴 경우는 인자값을 선언할 필요가 없을 것입니다. (선언해봤자 사용할 구간이 없겠죠)


    다시 크립토좀비로 돌아와서, 크립토좀비 강의에서 알려주는 eatHamburgers의 함수를 호출하기 위해서는 이름과 액수를 적으라고 했습니다.


    eatHamburgers("vitalik", 100);

    eatHamburgers("steel", 110);

    eatHamburgers("you", 200);


    위와 같이 펑션을 호출하게 되면 eatHamburgers라는 펑션에서 vitalik과 100이라는 값을 사용할 수 있고, steel과 110의 값을 사용할 수 있고 you와 200을 호출하는 순간 사용할 수 있게 됩니다.



    문제 및 문제풀이



    문제



    문제풀이

    pragma solidity ^0.4.19;

    contract ZombieFactory {

    uint dnaDigits = 16;
    uint dnaModulus = 10 ** dnaDigits;

    struct Zombie {
    string name;
    uint dna;
    }

    Zombie[] public zombies;

    // 여기서 시작
    function createZombie(string _name, uint _dna) {
    }
    }



    크립토좀비 원본 링크

    https://cryptozombies.io/ko/lesson/1/chapter/7


    댓글

    Designed by JB FACTORY