Block-Chain/Solidity

Modifier & SPDX

WebDevLee 2023. 3. 22. 15:30

Solidity의 모디파이어와 SPDX에 대해 정리하였습니다.

 

 


< return 변수 >

return 부분에 타입뿐만 아니라 변수값도 같이 명시함으로써 추후 변수명을 새로 명시할 필요가 없습니다.

 

Ex)

function add1(uint256 _num1, uint256 _num2) public pure returns (uint256){
  uint256 total = _num1 + _num2;
  return total;
}

function add2(uint256 _num1, uint256 _num2) public pure returns (uint256 total){
  total = _num1 + _num2;
  return total;
}

 

 


< modifier >

여러 함수에 반복적으로 쓰이는 코드를 줄이기 위해 사용합니다. express의 미들웨어와 비슷한 역할(개념)을 가지고 있습니다.

 

  • 형태
// 파라미터 값이 없는 경우
modifier 모디파이어명 {
  // 반복되는 코드
  _;
}

// 파라미터 값이 있는 경우
modifier 모디파이어명(파라미터) {
  // 반복되는 코드
  _;
}

_; 부분에 함수를 실행합니다.

 

Ex)

modifier onlyAdults {
  revert("You are not allowed to pay for the cigarette");
  _;
}

function BuyCigarette() public onlyAdults returns(string memory) {
  return "Your payment is succeeded";
}

 

 


< SPDX 라이센스 >

솔리디티 문서에 의하면, 저작권과 괕은 문제를 해소하기 위해 솔리디티 프로그램 최상단에 SPDX라이센스를 표기해야 한다고 요구하고있습니다.

하지만 컴파일러는 SPDX라이센스를 확인하기 않으므로 명시하지 않거나, // SPDX-License-Identifier: UNLICENSED 와 같이 작성하여도 컴파일에는 문제가 없습니다.

 

Ex)

// SPDX-License-Identifier: GPL-3.0

~
~
~

 

 


< 주석 >

주석은 코드에 사람이 읽을 수 있는 부연설명을 붙일 때 사용됩니다. 주석을 코드실행시 무시됩니다.

 

  • 행단위 : //
  • 블럭단위 : /* */