-
InstanceBlock-Chain/Solidity 2022. 12. 28. 16:41
Solidity의 Instance에 대해 정리하였습니다.
< Instance >
Instance란 한 스마트 컨트랙트의 인스턴스(분신)를 말합니다.
Instance는 한 스마트 컨트랙트에서 다른 스마트 컨트랙트에 접근하기 위해 사용됩니다.
But, Instance는 한 스마트 컨트랙트 전부를 가져오는 것이기 때문에 Gas가 많이 소비되어 비추천하는 방식임.- 인스턴스 생성 방법
new 인스턴스이름();
Ex) B 컨트랙트에서 A컨트랙트 함수에 접근
// SPDX-License-Identifier:GPL-30 pragma solidity >= 0.7.0 < 0.9.0; contract A { uint256 public a = 5; function change(uint256 _value) public { a = _value; } } contract B { A instance = new A(); function get_A() public view returns(uint256) { return instance.a(); } function change_A(uint256 _value) public { instance.change(_value); } }
< Constructor >
constructor는 Instance의 초기값 세팅을 위해 사용됩니다.
Ex)
contract A { string public name; uint256 public age; constructor(string memory _name, uint256 _age) { name = _name; age = _age; } function change(string memory _name, uint256 _age) public { name = _name; age = _age; } } contract B { A instance = new A("Alice", 52); function change(string memory _name, uint256 _age) public { instance.change(_name, _age); } function get() public view returns(string memory, uint256) { return (instane.name(), instance.age()); } }
'Block-Chain > Solidity' 카테고리의 다른 글
조건문 & 반복문 (0) 2023.02.15 Mapping & Array & struct(구조체) (0) 2023.01.16 상속 & 이벤트 (0) 2023.01.05 Function (0) 2022.12.26 Solidity란 & 기본 개념 (0) 2022.12.23