상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
도교란 무엇인가요?
도교에서 강조하는 '무료함'과 '활동'은 어떤 관계가 있나요?
도교의 의식에서의 음식의 역할은 무엇인가요?
도교와 상징주의의 관계는 어떻게 설명되나요?
장제스가 선호한 정치적 할인은 무엇이었나요?
북유럽에서의 자원 개발 상황은 어떤가요?
북유럽에서 살아보는 것은 어떤 느낌인가요?
고인돌이 발견된 대표적인 고고학적 유적지는 어디인가요?
고인돌을 주제로 한 다큐멘터리는 어떤 것들이 있나요?
캐나다 소득세의 신고 방식은 무엇인가요?
과민성 대장 증후군(IBS)의 증상과 치료 방법은 무엇인가요?
유대인의 축제 중 가장 중요한 것은 무엇인가요?
Previous
Next
수정하기 - 솔리디티에서 구조체(struct)는 어떻게 정의하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
솔리디티(<a href='https://sangseek.com/sangseeks/Solidity/ko'>Solidity</a>)에서 구조체(struct)는 여러 개의 서로 다른 데이터 타입을 하나의 복합 데이터 타입으로 묶어주는 역할을 합니다. 구조체를 사용하면 관련된 데이터를 그룹화하여 코드의 가독성을 높이고, 데이터 관리를 용이하게 할 수 있습니다. 구조체는 주로 복잡한 데이터 구조를 정의할 때 유용하게 사용됩니다. 구조체 정의하기 구조체는 `struct` 키<a href='https://sangseek.com/sangseeks/워드/ko'>워드</a>를 사용하여 정의합니다. 구조체를 정의할 때는 다음과 같은 형식을 따릅니다: ```solidity struct StructName { DataType1 <a href='https://sangseek.com/sangseeks/fieldName/ko'>fieldName</a>1; DataType2 fieldName2; ... } ``` 여기서 `StructName`은 구조체의 이름이며, `fieldName`은 각 필드의 이름, `DataType`은 해당 필드의 데이터 타입입니다. 예제 아래는 간단한 구조체를 정의하는 예제입니다. 이 예제에서는 `Person`이라는 구조체를 정의하고, 이름, 나이, 주소를 필드로 포함합니다. ```solidity pragma solidity ^0.8.0; contract Example { struct Person { string name; uint age; string address; } Person public person; function setPerson(string memory _name, uint _age, string memory _address) public { person = Person(_name, _age, _address); } function getPerson() public view returns (string memory, uint, string memory) { return (person.name, person.age, person.address); } } ``` 구조체 사용하기 위의 예제에서 `Person` 구조체는 `name`, `age`, `address`라는 세 개의 필드를 가지고 있습니다. `setPerson` 함수는 구조체의 인스턴스를 생성하고, `getPerson` 함수는 구조체의 필드 값을 반환합니다. 구조체 배열 구조체는 배열로도 정의할 수 있습니다. 예를 들어, 여러 사람의 정보를 저장하고 싶다면 다음과 같이 배열을 사용할 수 있습니다. ```solidity pragma solidity ^0.8.0; contract Example { struct Person { string name; uint age; string address; } Person[] public people; function addPerson(string memory _name, uint _age, string memory _address) public { people.push(Person(_name, _age, _address)); } function getPerson(uint index) public view returns (string memory, uint, string memory) { require(index < people.length, "Index out of bounds"); Person memory person = people[index]; return (person.name, person.age, person.address); } } ``` 위의 코드에서는 `people`이라는 `Person` 구조체의 배열을 정의하고, `addPerson` 함수를 통해 새로운 사람을 추가할 수 있습니다. `getPerson` 함수는 특정 인덱스의 사람 정보를 반환합니다. 구조체의 장점 1. 가독성 : 관련된 데이터를 그룹화하여 코드의 가독성을 높입니다. 2. 유지보수성 : 구조체를 사용하면 데이터 구조를 쉽게 변경할 수 있어 유지보수가 용이합니다. 3. 타입 안전성 : 각 필드에 대해 명확한 데이터 타입을 정의함으로써 타입 안전성을 제공합니다. 결론 솔리디티에서 구조체는 복잡한 데이터 구조를 정의하고 관리하는 데 매우 유용한 도구입니다. 구조체를 사용하면 관련된 데이터를 그룹화하여 코드의 가독성을 높이고, 데이터 관리를 보다 효율적으로 수행할 수 있습니다. 구조체는 배열과 함께 사용하여 여러 개의 데이터를 저장하고 처리하는 데도 유용합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기