๐ช 2023. 05. 08. Monday_ ์๋๋ ค๋ป์ณ ๐ช
โ
์๋ ํ์ธ์!๐
๋ชจ๋ ํจ๊ป 4๊ฐ์ ๋์ ํ๋์ ๋ฉ์ง ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ทธ๋ ๊น์ง ํ์ดํ
ํฉ์๋ค !๐๐๐
โ
* ์ด ๊ณณ์์๋ ๋น์ผ์ ๋ฐฐ์ด ๋ด์ฉ์ ๋ณต์ตํ๋ ์ฉ๋๋ก ๊ธ์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค.
โ
* ์ด๋ฒ์๋ '๋ฐฐ์ด์์ ํน์ ์์๋ฅผ ๋ฐํ'๋ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๋ณต์ตํด๋ณด๊ฒ ์ต๋๋ค.
โ
โ
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.18;
contract Struct {
//Student ๊ตฌ์กฐ์ฒด ์์ฑ
//์ด๋ฆ, ์๋
์์ผ, ํ๋ฒ ์ ๋ณด ๋ด์์ฃผ๊ธฐ
struct Student {
string name;
uint birth;
uint num;
}
//ํ์๋ค์ ์ ๋ณด๋ฅผ ๋ด๋ students ์ด๋ฆ์ array ์์ฑ
Student[] students;
//์ํ๋ณ์ students array์ ๊ฐ์ ๋ฃ์ด์ฃผ๊ธฐ !
function pushStudent(string memory _name, uint _birth, uint _num) public {
students.push(Student(_name, _birth, _num));
}
โ
//๋ฐฐ์ด์ n๋ฒ์งธ ์์์ Student ์ ๋ณด ๋ชจ๋ ๋ฐ๋ ํจ์ ๊ตฌํ
//Student ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐํํ ๊ฒ์ด๋ค.
function getStudent(uint _n) public view returns(Student memory) {
//์ปดํจํฐ๊ณตํ์์๋ 0๋ฒ๋ถํฐ ์์ํจ์ผ๋กn-1์ ํด์ค์ผํ๋ค!
return students[_n-1];
}
//Student์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฐ์ง ์๊ณ ํ๋์ ์์๋ง ๋ฐ๊ณ ์ถ๋ค !
function getBirth(uint _n) public view returns(uint) {
return students[_n-1].birth; //array์ด๋ฆ[n๋ฒ์งธ].์์์ด๋ฆ
}
}
โ
โ
โ
โ๏ธ ์ฐ๋ฆฌ์ ์ต์ข
๋ชฉํ !
โ โ โช๏ธ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌ(=์ ์ฅ)ํ ๊ฒ์ธ๊ฐ !!!
โ๏ธ array : ๊ฐ์ ํ๋ผ๋ฆฌ ๋ค์ด๊ฐ๋ค.
โ โ โ โ โ ๐ธex) array๋ฅผ ์จ์ผ ์ ๋ฆฌํ ๊ฒฝ์ฐ
โ โ โ โ โ โ โ -> for ๋ฌธ์ ์ฌ์ฉํด ์์ฐจ์ ์ผ๋ก ๋๋ ค ๋ฐ๋ณต๋๋ ์ฐ์ฐ์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ
โ โ โ โ โ โ โ โ โ โ (ํ์์ ๋ณด - ๊ฐ ๋ฐ ํ๊ท )
โ
โ
โ๏ธ mapping(๋ด์ผ ๋ฐฐ์ธ ์์ ) : key-value๊ฐ ํ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
โ โ โ โ โ ๐ธex) mapping์ ์จ์ผ ์ ๋ฆฌํ ๊ฒฝ์ฐ
โ โ โ โ โ โ โ -> ๊ฒ์์ ํตํด ๊ณ์ํด์ ์๋ก์ด ์ ๋ณด๋ฅผ ์ป์ด๋ผ ๊ฒฝ์ฐ ์ฌ์ฉ
โ โ โ โ โ ๐ธex)
โ โ โ โ โ โ โ -> 1๋ฒ ์ฃผ์์ 5์ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ค.
โ โ โ โ โ โ โ โ โ โ (์ด๋, key: 1, value: 5)
โ
โ โ โ โ โ ๐ธex) ์ด๋๋ฆฌ์(account ๊ธฐ๋ฐ)
โ โ โ โ โ โ โ -> key: ์ง๊ฐ์ฃผ์ - value: ์ง๊ฐ์์ก
โ
โ โ โ โ โ ๐ธ๊ถ๊ทน์ ์ผ๋ก ์๊ณ ์ ํ๋๊ฒ !
โ โ โ โ โ โ โ -> value ๊ฐ!!!
โ โ โ โ โ โ โ -> key๋ value๋ฅผ ์ฐพ์๋ด๊ธฐ ์ํ path์ ๋๋ก ์๊ฐํ๋ฉด ๋!
โ
โ
โ
โ
์ฆ ๊ฒ ๋ค.