반응형

 

contract Father{
	constructor(string memory _givenName){
    	givenName = _givenName;
    }
	string public familyName = "Lee";
    string public givenName = "Dae";
    uint256 public money = 100;
    
    function getFamilyName() view public returns(string memory){
    	return familyName;
    }
    
    function getGivenName() view public returns(string memory){
    	return givenName;
    }
    
    function getMoney() view virtual public returns(uint256){
    	return money;
    }
}


contract Son is Father { //생성자를 이용하여 아들이름 변경

	constructor() Father("Yong"){
    
    }

	uint256 public earning = 0;
    function work() public {
    	earning += 100;
    }
	function getMoney() view override public returns(uint256){
    	return money + earning ;
    }
}

 

반응형

'솔리디티' 카테고리의 다른 글

상속  (0) 2022.06.25
functuion String  (0) 2022.06.25
view와 pure  (0) 2022.06.25
솔리디티 접근제한자  (0) 2022.06.25
Solidity Function정의  (0) 2022.06.25
반응형
contract Father{
	constructor(string memory _givenName){
    	givenName = _givenName;
    }
	string public familyName = "Lee";
    string public givenName = "Dae";
    uint256 public money = 100;
    
    function getFamilyName() view public returns(string memory){
    	return familyName;
    }
    
    function getGivenName() view public returns(string memory){
    	return givenName;
    }
    
    function getMoney() view public returns(uint256){
    	return money;
    }
}


contract Son is Father("Yong"){ //생성자를 이용하여 아들이름 변경
	
}
반응형

'솔리디티' 카테고리의 다른 글

오버라이딩  (0) 2022.06.25
functuion String  (0) 2022.06.25
view와 pure  (0) 2022.06.25
솔리디티 접근제한자  (0) 2022.06.25
Solidity Function정의  (0) 2022.06.25
반응형
storage

대부분의 변수, 함수들이 저장되며 영속적으로 저장이되어 가스 비용이 비싸다.

 

※ 영속적이라함은, 스마트컨트랙트를 배포하게되면 해당 정보는 블록체인의 블록에 들어가게 되어 영속적이게 된다.

memory

함수의 파라미터, 리턴값, 레퍼런스 타입이 주로 저장이된다. 그러나 storage처럼 영속적이지 않고 함수 내에서만 유효하기에 보다 적은 가스비용이 발생된다.

 

Calldata

주로 external function 의 파라미터에서 사용된다.

 

stack

EVM(Ethereum Virtual Machine)에서 stack data를 관리할때 쓰는 영역이며, 1024MB로 제한적이다.

 

String

기본 데이터 타입이아닌, 레퍼런스 타입이라 볼  수 있음 

 

※ String은 문자의 배열의 연속

 

function get_String(string memory _str) public pure returns(string memory){
	return _str;
}

function get_uint(uint256 _ui) public pure returns(uint256){
	return _ui; //기본 데이터타입은 memory가 디폴트로 사용
}
반응형

'솔리디티' 카테고리의 다른 글

오버라이딩  (0) 2022.06.25
상속  (0) 2022.06.25
view와 pure  (0) 2022.06.25
솔리디티 접근제한자  (0) 2022.06.25
Solidity Function정의  (0) 2022.06.25
반응형
view

function 밖의 변수들을 읽을 수 있으나, 변경 불가능

uint256 public a = 1;

function read() public view returns (uint256){
	return a + 2; //a변경 불가능하여 바로 리턴
}
pure

function 밖의 변수들을 읽지 못하고, 변경도 불가능

function read() public pure returns(uint256){
	uint256 a = 2; //밖의 변수 참조 불가능
    return b + 2;
}
둘다 명시 안할시

function 밖의 변수들을 읽어서, 변경해야함

IDE에서 값이 나오지 않음

uint256 a = 1;
function read() public pure returns(uint256){
	a = 13;
    return a;
}
반응형

'솔리디티' 카테고리의 다른 글

상속  (0) 2022.06.25
functuion String  (0) 2022.06.25
솔리디티 접근제한자  (0) 2022.06.25
Solidity Function정의  (0) 2022.06.25
Solidity 변수 타입  (0) 2022.06.25
반응형
public

모든 곳에서 접근가능

 

contract public_example{
	uint256 public a = 3;
    
    function changeA(uint256 _value) publuc {
    	a = _value;
    }
    function get_a() view public returns (uint256){
    	return a;
    }
}

contract public_example2{
	public_example instance = new public_example();
    
    function changeA_2(uint256 _value) public{
    	instance.changeA(_value);
    }
    function use_public_example_a() view public returns (unit256) {
    	return instance.get_a();
    }
}

 

external

public처럼 모든곳에서 접근 가능하다, external이 정의된 자기자신 컨트랙 내에서 접근 불가 (즉 다른 컨트랙에서 접근 할때)

 

private

오직 private이 정의된 자기 컨트랙트에서만 가능 (private이 정의된 컨트랙을 상속받은 자식도 불가능)

 

internal

private 처럼 오직 internal이 정의된 자기 컨트랙에서만 가능하고, internal이 정의된 컨트랙을 상속받은 자식도 사용 가능)

 

 

 

반응형

'솔리디티' 카테고리의 다른 글

상속  (0) 2022.06.25
functuion String  (0) 2022.06.25
view와 pure  (0) 2022.06.25
Solidity Function정의  (0) 2022.06.25
Solidity 변수 타입  (0) 2022.06.25
반응형

1. 파라미터와 리턴값이 없는 function

uint256 public it = 0;

function sample() public{
      it = 10;
}

 

 

2. 파라미터는 있고 리턴값이 없는 function

uint256 public it = 0;

function sample(uint256 _value) public{
      it = _value;
}

 

3. 파라미터, 리턴 둘다 있는 function

uint256 public it = 0;

function sample(uint256 _value) public returns(uint256) {
      it = _value;
      return it;
}
반응형

'솔리디티' 카테고리의 다른 글

상속  (0) 2022.06.25
functuion String  (0) 2022.06.25
view와 pure  (0) 2022.06.25
솔리디티 접근제한자  (0) 2022.06.25
Solidity 변수 타입  (0) 2022.06.25

+ Recent posts