Menu
Coddy logo textTech

구조체

Coddy Solidity 여정의 기초 섹션에 포함된 레슨. 53개 중 43번째.

구조체는 관련된 필드들을 사용자 지정 형식 이름 아래에 그룹화합니다. 각 필드에는 형식과 이름이 있으며, 필드마다 서로 다른 형식을 사용할 수 있습니다. 컨트랙트 범위에서 형식을 선언하고, 값을 만든 다음, 점 표기법으로 해당 필드에 액세스합니다.

다음과 같이 컨트랙트 범위에서 선언합니다:

struct Parcel { uint256 weight; bool ready; }

제공된 main 함수 내에서 사용합니다:

Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);

Parcel 타입에는 weight 및 ready 필드가 있습니다. 위치 기반 생성자는 선언 순서대로 값을 제공합니다. 이 항목은 현재 호출 동안 메모리에 존재하며, 구조체 타입을 선언하는 것만으로 저장된 레코드가 생성되지는 않습니다.

구조체 필드를 읽거나 변경하려면 점 뒤에 필드 이름을 사용하세요.

challenge icon

챌린지

쉬움

uint256 levelbool active을 해당 순서로 포함하는 Badge라는 이름의 구조체를 선언하세요. 제공된 입력으로 메모리에 Badge를 생성하고 두 필드를 모두 출력하세요.

테스트는 다음 순서로 main에 인수를 전달합니다: uint256 level, bool active. 각 테스트는 초기화된 새로운 컨트랙트 상태에서 시작합니다.

요청된 출력을 위해 console.log를 사용하세요. 별도의 레이블은 과제에서 지정하지 않는 한 추가하지 말고, 요청된 값만 한 줄에 하나씩 출력하세요.

직접 해보기

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 level, bool active) external view {
        // 여기에 솔루션을 작성하세요.
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: Solidity 플레이그라운드