본문 바로가기
블록체인 및 경제/솔리디티

9. 솔리디티 배열, 맵핑

by kimsfamily 2020. 11. 10.

1. 스마트 계약의 시작, 리믹스 도구 사용해보기

2. 솔리디티 개발환경 구성

3. 스마트컨트랙트 작성 후 배포하기

4. openzeppelin 사용하여 ERC20 토큰 만들기

5. Ropsten 테스트넷에 ERC20토큰 배포하기

6. web3.js 와 자바스크립트를 활용한 간단한 예제

7. 솔리디티 기초, 리믹스로 컨트랙트 작성하기

8. 솔리디티 기본문법 (변수, 데이터타입, 구조체)

9. 솔리디티 배열, 맵핑

10. 솔리디티 조건문, 반복문(if, else, for)

11. 솔리디티 암호화폐 지불(호텔룸 예약하기 프로그램)

12. 솔리디티 상속

13. 리믹스 솔리디티 6.0 버전 ERC20토큰 만들기

14. web3.js 와 자바스크립트를 활용하여 (이더잔액조회) 지갑 만들기

15. 솔리디티 컨트랙트 Web.js 활용하여 웹으로 보여주기




 

이번시간에는 솔리디티 배열에 대해서 배워보겠습니다.

 

1) 솔리디티 배열예제

솔리디티에서는 두가지 형태의 배열을 사용할 수 있습니다.

 -동적 배열 uint[] public unitArray = [1,2,3];  // 실행시간에 크기가 결정됨

 -정적 배열 uint[3] public unitArray = [1,2,3]; // 배열 선언시 크기가 결정됨

 

 

컴파일 후 depoy후 하나씩 확인해봅니다.

 - add_Value에 데이터 입력후, valuecount를 통해서 카운터 증가된거 확인 후, value에 들어간 값 확인

다른 변수들도 값이 잘 들어왔는지, 어느 배열에 어느 값이 있는지 하나씩 체크해봅니다.

 

 

2) 솔리디티 매핑(Mapping)예제

 

2.1) 맵핑(Mapping) 기본 사용법

먼저 아래의 코드를 작성합니다.

 

컴파일, Deploy후 잘 되는지 확인합니다.

 

매핑은 일반적인 프로그래밍 언어에서는 해시테이블이나 사전과 유사합니다.

키(Key) - 값(value) 형태로 쌍으로 저장되고 제공된 키(Key)를 가지고 값(value)을 얻어낼 수 있습니다.

 

위 코드에서는,

unit 자료형이 키(Key)이며, string 자료형이 값을 저장하는데 사용됩니다. names는 매핑의 식별자로 사용되었습니다.

 

2.2) 맵핑(Mapping) 구조체 및 함수활용

 

이번에는 아래의 코드를 추가로 작성합니다.

Book이라는 구조체를 만들고 addBook이라는 함수를 추가합니다.

 

Deploy후, addBook에 번호, 타이틀, 저자를 추가해봅니다.

 

 

 

2.3) 맵핑(Mapping) Address 및 스마트컨트랙트 활용

 

마지막으로, 주소를 활용한 맵핑을 코딩해봅니다.

아래 코딩에서 확인할 수 있듯이 맵핑은 중첩(매핑이 다른 매핑을 포함하는것)이 가능합니다. 

(참고 . msg.sender : 솔리디티에서 현재 함수를 호출한 스마트컨트랙트의 주소를 가르킴)

 

Deploy후, Account 주소를 가져옵니다.

 

addMyBook에 1, 이름, 저자를 입력합니다.

그리고 myBooks에 컨트랙트주소, 1을 입력하여 정상적으로 표시되는지 확인합니다.

 

 

 

소스코드

gist.github.com/gwmccubbin/e0e26032466d95ba5dd2273d88889852

 

아래 사이트 참고하여 재작성된 강의안입니다.

www.dappuniversity.com/articles/solidity

 

반응형

댓글0