99.10.11

[Solidity] function 본문

블록체인/Solidity

[Solidity] function

99.I0.II 2022. 7. 30. 22:37

기본적으로 

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