david's daily developer note

[Solidity] 2.Function 본문

[Blockchain]/develop

[Solidity] 2.Function

mouse-david 2022. 8. 14. 16:20
728x90

1. 함수 기본 구조

솔리디티 함수는 다음의 구조를 가진다.

contract Example {
	function sum(uint _a, int _b) { }
}

함수를 의미하는 function 키워드와 함수명의 구조를 가진다.
인자에 '_' 언더바를 붙이는 것이 관례라고 한다.

2. 함수 접근 한정자


솔리디티 함수는 기본적으로 public으로 선언되어서 다른 컨트랙트에서도 접근이 가능하다.
다른 컨트랙트 접근을 제한하려면 private 접근 한정자를 다음과 같이 작성할 수 있고, 함수 인자와 같이 함수 이름에 '_'에 붙여서 표현하는 같이 관례라고 한다.

contract Example {
	function _sum(uint _a, int _b) private { }
}

3. 함수 반환

반환값이 있는 함수는 키워드와 반환값 종류를 명시한다.

contract Example {
	function sum(uint _a, int _b) public returns (uint) { 
    	return _a + _b;
    }
}

데이터 변경없이 읽기만 하는 함수의 경우에는 view 함수로 선언한다.
함수가 데이터 변경하지 않음을 보장하도록 명시할 수 있다. C++ const 함수와 목적이 같다.

contract Example {
	function sum(uint _a, int _b) public view returns (uint) { 
    	return _a + _b;
    }
}

컨트랙트의 어떤 데이터에도 접근하지 않는 경우에는 pure함수를 사용한다. view함수는 앱의 데이터를 읽지만, 수정할 수 없음을 명시하고, pure는 접근조차 하지 않는 것을 명시한다.

contract Example {
	function _sum(uint _a, int _b) private pure returns (uint) { 
    	return _a + _b;
    }
}

 

728x90

'[Blockchain] > develop' 카테고리의 다른 글

[Solidity] 5.Error handling : Assert, Require, Revert  (0) 2022.08.16
[Solidity] 4.Mapping  (0) 2022.08.15
[Solidity] 3.Event  (0) 2022.08.14
[Solidity] 1.Basics & Language description  (0) 2022.08.13