블록체인 공부

    [Solidity] 상속과 오버라이드 (Inheritance,Override)

    [Solidity] 상속과 오버라이드 (Inheritance,Override)

    상속 (Inheritance) 상속이란? 오버라이드 (Override) 상속이란? Solidity는 다중 상속과 다형성을 지원하는 언어입니다. 그중에 상속을 설명을 드리자면 상속을 받는 컨트랙터를 자식 컨트랙트, 상속을 해주는 컨트랙트를 부모 컨트랙트라고 합니다. 이때 부모 컨트랙트는 private를 제외한 모든 변수나 함수를 상속해 줍니다. contract Parent { uint a = 3; uint public b = 6; function add(uint _first, uint _second) returns(uint){ return _first + _second ; } } contract Child is Parent { function add1() public returns(uint){ return..

    [Solidity] 구조체 (struct)

    [Solidity] 구조체 (struct)

    구조체 사용자 정의 자료형이라고도 부르는 구조체는 변수의 묶음으로 이해할 수 있습니다. 결국은 자료형이기에 배열을 만들 수도 있고 맵핑을 만들 수도 있습니다. 우선 구조체를 만드는 방법부터 보도록 하겠습니다. struct character{ string _name; string _job; uint _level; } 위의 예시를 보시면 캐릭터라는 자료형을 가진 구조체 안에 이름, 직업, 그리고 레벨이 들어가 있습니다. 이와 같이 꼭 필요로 하는 자료들을 묶어서 구조체를 만들 수 있습니다. 캐릭터를 만들 때마다 이름, 직업, 그리고 레벨을 입력하기 위한 변수를 따로 만들지 않아도 되므로 코드가 간소화될 수 있습니다. mapping (uint => character) public characterList; f..

    [Solidity] 맵핑 (Mapping)

    [Solidity] 맵핑 (Mapping)

    맵핑 (Mapping) 맵핑은 배열과 비슷한 기능으로 볼 수 있습니다. 차이점은 배열과 다르게 index값으로 정수뿐만 아니라 주소 값 혹은 string값도 올 수 있습니다. 따라서 활용도가 더 넓습니다. mapping ( uint8 => uint16 ) public test; 선언 방법은 위와 같습니다. mapping을 적어주고 괄호 안에 uint8의 자리는 키 값이라고 부르는데 index값의 자료형 타입을 입력하면 됩니다 키값으로 문자열을 저장하고 싶다면 uint8 대신 string, 주소 값을 넣고 싶다면 adress가 옵니다. uint16의 자리는 저장되는 데이터 값의 자료형을 입력합니다. 저장되는 자료형이 문자열이라면 string, 정수가 온다면 int를 입력하시면 됩니다. function se..

    [Solidity] 배열의 선언과 호출, 종류, 함수

    [Solidity] 배열의 선언과 호출, 종류, 함수

    배열 배열의 차원 배열의 값 호출 저장소 배열과 메모리 배열 동적 배열과 정적 배열 배열에서 지원하는 함수 배열의 차원 배열은 차원으로도 분류됩니다. 1차원 배열, 2차원 배열, 3차원 배열이 존재하며 각각의 선언 방식과 정리되는 방식을 예시를 보인다면 아래와 같습니다. uint[3] arrayOne = [10,20,30]; uint[3][2] arrayTwo = [[1,2,3],[4,5,6]]; uint[3][2][2] arrayThree = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]; 1차원 배열의 예시는 arrayOne, 2차원 배열의 예시는 arrayTwo, 3차원 배열의 예시는 arrayThree입니다. 배열 저장된 값은 번호를 가지게 되는데 이것을 index라고 ..