๐ŸŒˆTest ์ค€๋น„-(3)_ ํ•™์ƒ์ •๋ณด- ๋ฐฐ์—ด์—์„œ ํŠน์ •์š”์†Œ ๋ฐ˜ํ™˜

RoRAยท2023๋…„ 5์›” 9์ผ
0

Solidity (use_ Remix)

๋ชฉ๋ก ๋ณด๊ธฐ
6/10

๐Ÿช‚ 2023. 05. 08. Monday_ ์—Ž๋“œ๋ ค๋ป—์ณ ๐Ÿช‚


โœ… Intro

โ€‹

์•ˆ๋…•ํ•˜์„ธ์š”!๐Ÿ˜

๋ชจ๋‘ ํ•จ๊ป˜ 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์ •๋„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋Œ!
โ€‹
โ€‹
โ€‹


โ€‹

๐Ÿ“Œ23. 05. 08

์ฆ ๊ฒ ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€