Solidity - Struct

RedTiger·2023년 10월 6일

Blockchain

목록 보기
5/7

[Struct]

// SPDX-License-Identifier: MIT
pragma solidity >= 0.7.0 < 0.9.0;

contract makestruct
{
    struct character
    {
        uint256 age;
        string name;
        string job;
    }
    // own type을 만듦
    // character struct안에 [age,name,job]에대한 정보가 담겨있음

    mapping(uint256=>character) public charactermapping;
    // key : unint, value : struct(character)
    character[] public characterarray;
    // type(struct)

    function create(uint256 _age, string memory _name, string memory _job) pure public returns(character memory)
    {
        return character(_age, _name, _job);
        
    }
    // structure인 character에 값을 저장하기위한 func

    function createmapping(uint256 _key, uint256 _age, string memory _name, string memory _job) public
    {
        charactermapping[_key] = character(_age,_name,_job);
    }
    // key값에 해당하는 character 생성

    function getmapping(uint256 _key) public view returns(character memory)
    {
        return charactermapping[_key];
    }
    // key값에 해당하는 mapping return

    function createarray(uint256 _age, string memory _name, string memory _job) public {
        characterarray.push(character(_age,_name,_job)) ;
    }

    function getarray(uint256 _index) public view returns (character memory)
    {
        return charactermapping[_index];
    }
}
profile
Communication & SW

0개의 댓글