상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
SSD데이터복구를 위해 필요한 도구는 무엇인가요?
가상서버의 액세스 로그를 관리하는 방법은 무엇인가요?
소개팅 후 연락 빈도가 낮은 사람과의 소통 전략은?
소개팅 후 예의상 연락을 주고받는 것이 부담스러울 때의 대처법은?
소개팅 후 연락 없는 남자와의 연락이 끊기는 것이 자연스러운 걸까요?
소개팅 후 마음에 안들 때 연락을 할 경우, 어떻게 감정을 표현해야 할까?
소개팅 후 연락 없는 여자가 내게 남긴 인상은 무엇이었을까?
소개팅 후 연락 없는 여자에 대한 나의 기대감은?
니카라과의 전통 의상은 어떤 모습인가요?
니카라과의 주요 역사적 사건은 무엇이 있나요?
LLM의 훈련 성공률을 높이는 방법은 무엇인가요?
LLM의 유용성을 극대화하기 위한 툴은 무엇인가요?
Previous
Next
수정하기 - 솔리디티에서 매핑(mapping)은 어떻게 사용하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
솔리디티(Solidity)에서 매핑(mapping)은 키-값 쌍을 저장하는 데이터 구조로, 주로 상태 변수로 사용됩니다. 매핑은 해시 테이블과 유사하게 작동하며, 특정 키에 대해 값을 빠르게 조회할 수 있는 효율적인 방법을 제공합니다. 매핑은 Solidity에서 가장 많이 사용되는 데이터 구조 중 하나로, 주로 스마트 계약에서 다양한 용도로 활용됩니다. 매핑의 기본 구조 매핑은 다음과 같은 형식으로 선언됩니다: ```solidity mapping(keyType => valueType) public myMapping; ``` - `keyType`: 매핑의 키의 데이터 타입입니다. 이 타입은 기본 데이터 타입(예: `uint`, `address`, `bytes32` 등)이나 사용자 정의 <a href='https://sangseek.com/sangseeks/구조체/ko'>구조체</a>일 수 있습니다. - `valueType`: 매핑의 값의 데이터 타입입니다. 이 또한 기본 데이터 타입이나 구조체일 수 있습니다. 매핑의 사용 예시 다음은 간단한 매핑 사용 예시입니다. 이 예시에서는 주소를 키로 사용하여 각 주소에 대한 잔액을 저장하는 매핑을 구현합니다. ```solidity pragma solidity ^0.8.0; contract SimpleBank { mapping(address => uint) private balances; // 예금 함수 function deposit() public payable { require(msg.value > 0, "You must send some ether"); balances[msg.sender] += msg.value; } // 잔액 조회 함수 function getBalance() public view returns (uint) { return balances[msg.sender]; } // 출금 함수 function withdraw(uint amount) public { require(balances[msg.sender] >= amount, "In<a href='https://sangseek.com/sangseeks/sufficient/ko'>sufficient</a> balance"); balances[msg.sender] -= amount; payable(msg.sender).transfer(amount); } } ``` 매핑의 특징 1. <a href='https://sangseek.com/sangseeks/초기화/ko'>초기화</a> : 매핑은 자동으로 초기화됩니다. 즉, 매핑의 키에 대한 값이 설정되지 않은 경우, 해당 값은 기본값(예: `0` 또는 `address(0)`)으로 초기화됩니다. 2. 키의 존재 여부 확인 : 매핑은 키의 존재 여부를 직접 확인할 수 있는 방법이 없습니다. 키가 존재하는지 확인하려면 해당 키에 대한 값을 조회하고, 기본값<a href='https://sangseek.com/sangseeks/인지/ko'>인지</a> 확인해야 합니다. 3. 순회 불가능 : 매핑은 순회할 수 없습니다. 즉, 매핑의 모든 키와 값을 반복(iterate)하여 조회하는 기능은 제공되지 않습니다. 이로 인해 매핑은 특정 키에 대한 값의 조회에는 효율적이지만, 전체 데이터를 조회하는 데는 적합하지 않습니다. 4. 가변성 : 매핑은 가변적이며, 키와 값을 추가하거나 수정할 수 있습니다. 그러나 매핑의 크기를 직접적으로 알 수는 없습니다. 매핑의 제한 사항 - 매핑은 배열이나 구조체와 같은 다른 데이터 구조와 결합하여 사용할 수 있지만, 매핑 자체는 배열처럼 인덱스를 사용할 수 없습니다. - 매핑의 키는 해시값으로 저장되므로, 키의 순서가 보장되지 않습니다. 결론 매핑은 Solidity에서 매우 유용한 데이터 구조로, 스마트 계약에서 상태를 관리하는 데 필수적인 역할을 합니다. 매핑을 사용하면 특정 키에 대한 값을 효율적으로 저장하고 조회할 수 있으며, 다양한 응용 프로그램에서 활용될 수 있습니다. 그러나 매핑의 특성과 제한 사항을 이해하고 적절하게 사용하는 것이 중요합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기