99.10.11
[Solidity] function 본문
기본적으로
function func_name() public { } 형태
1. 접근제어자
public, private, internal, external 이 네가지중 하나를 사용
public : 모든 곳에서 접근 가능
external : 퍼블릭처럼 모든 곳에서 접근가능하나, external이 정의된 자기자신 컨트랙트 내에서 접근 불가
private : 오직 private이 정의된 자기 컨트랙트에서만 가능(상속받은 자식도 안됨 오직 자기만)
internal : private처럼 오직 internal이 정의된 자기 컨트랙트 내에서만 가능하고, internal 이 정의된 컨트랙트를 상속받은 자식에서는 접근 가능
2. view와 pure
view: function 밖의 변수들을 읽을 수 있으나 변경은 불가능 (조작을 가하고 그 값만 리턴하겠다)
pure : function 밖의 변수들을 읽지도, 변경도 불가능 (순수하게 함수 내에서만 자체적으로 쓰는것)
view와 pure 둘 다 명시 안 할 때: function 밖의 변수들 읽어서 변경해야함
3. 솔리디티 function에 string을 어떤 방식으로 쓰는지
[솔리디티에서의 저장]
storage: 대부분의 변수, 함수들이 저장되며 영속적으로 저장돼서 가스비가 비싸다
-> 함수 밖의 변수 / 함수 그자체
-> 영속적 저장이란 스마트 컨트랙트를 배포하면 컨트랙트의 함수와 변수 정보들이 블록체인상에 올라가는 것을 의미함
memory: 함수의 파라미터, 리턴값, 레퍼런스타입 주로 저장 (영속적이지 않고 함수 내에서만 유효하므로 가스 비용 비교적 저렴)
Colldata : 주로 external function의 파라미터에서 사용
stack: EVM에서 stack data를 관리할때 쓰는 영역, 1024Mb 제한적
솔리디티 함수는 크게 세 가지로 분류된다.
1_ Parameter 와 Return 값이 없는 함수
2_ Parameter는 있고, Return 값이 없는 함수
3_ Parameter 와 Return 값이 모두 있는 함수
'블록체인 > Solidity' 카테고리의 다른 글
[Ethereum] Ether 단위와 Gas (0) | 2022.07.30 |
---|---|
[Solidity] data type (0) | 2022.07.30 |
[Ethereum Remix] 스마트 컨트랙트 작성 (0) | 2022.07.30 |