Solidity Function String

kich555·2021년 11월 12일
0

Solidity

목록 보기
4/6

Solidity의 데이터 저장공간은 간단히 4가지 영역으로 구분할 수 있다.

Storage

대부분의 변수, 함수들이 저장되며 영속적으로 저장된다.
즉 호출유무와 상관없이 언제나 데이터를 가지고있다 => 이 영역에 선언되는 데이터가 많으면 많을수록 가스비가 비싸진다

Memory

함수의 파라미터, 리턴값, 레퍼런스 타입이 주로 저장된다.
데이터들이 Storage처럼 영속적이지 않고 함수 내에서만 유효하다.
(실행이 끝난 함수 내의 변수들이 가비지 콜렉터에 의해 메모리 영역을 반환하는 것처럼)
=> 가스비가 Storage보다 싸다

Colldata

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

Stack

EVM (Ethereum Virtual Machine) 에서 Stack data를 관리할때 쓰는 영역인데 1024MB의 제한이 있다.

String

함수에 String을 넣는 법

Solidity에서 string은 기본 data type이 아닌,
Reference type의 데이터이다.
간단히 말하자면 문자열 데이터 타입이 없음으로 배열을 통해 문자열을 완성시킨다.

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

문자열을 함수에 넣는 법은 위와 같다.

보다시피 파라미터와 리턴 모두 memory 지정을 해주어야 한다.

function get_uint (uint256 _ui) public pure returns(uint256){
	return _ui;
}

하지만 int / uint 와 같은 기본 data type들은 memory를 지정해줄 필요가 없다
(default 값으로 지정되어 있기 때문)

profile
const isInChallenge = true; const hasStrongWill = true; (() => { while (isInChallenge) { if(hasStrongWill) {return 'Success' } })();

0개의 댓글