[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];
}
}