솔리디티 스마트 컨트랙트에서 상태 변수는 컨트랙트의 영구적인 저장소인 스토리지(Storage)에 저장되는 변수입니다. 이러한 상태 변수들은 컨트랙트의 상태를 관리하며, 블록체인에 기록되어 외부에서 조회하거나 변경할 수 있습니다. 이 글에서는 상태 변수의 특징 및 사용 방법에 대해 알아봅시다.
상태 변수 선언 및 초기화
상태 변수는 컨트랙트 내부에서 선언되며, 컨트랙트가 배포될 때 초기화됩니다. 상태 변수는 다양한 타입으로 선언할 수 있으며, 초깃값을 명시적으로 지정할 수 있습니다.
pragma solidity ^0.8.0;
contract StateVariablesExample {
uint public counter; // 초깃값을 지정하지 않으면 0으로 초기화됩니다.
string public message = "Hello, World!";
address public owner;
constructor() {
owner = msg.sender;
}
}
상태 변수의 가시성
상태 변수는 가시성을 지정하여 외부에서의 접근을 제한할 수 있습니다. 가시성은 public, internal, private 중 하나를 선택할 수 있습니다.
- public: 외부에서 상태 변수를 읽을 수 있으며, 컴파일러는 자동으로 getter 함수를 생성합니다.
- internal: 상태변수가 선언된 컨트랙트 및 상속된 컨트랙트에서만 접근할 수 있습니다.
- private: 상태변수가 선언된 컨트랙트에서만 접근할 수 있습니다.
pragma solidity ^0.8.0;
contract VisibilityExample {
uint public publicVar = 1;
uint internal internalVar = 2;
uint private privateVar = 3;
function getPrivateVar() public view returns (uint) {
return privateVar;
}
}
상태 변수의 수정
상태 변수는 컨트랙트 내의 함수에서 변경할 수 있습니다. 상태 변수가 변경되면 변경된 값이 블록체인에 기록되며, 이전의 상태는 영구적으로 덮어쓰여집니다.
pragma solidity ^0.8.0;
contract Counter {
uint public count;
function increment() public {
count += 1;
}
function decrement() public {
count -= 1;
}
}
'블록체인 (Block Chain) > 이더리움' 카테고리의 다른 글
[솔리디티 입문] 6. 함수 제어자 (0) | 2023.06.16 |
---|---|
[솔리디티 입문] 5. 함수 (0) | 2023.06.16 |
[솔리디티 입문] 3. 글로벌 네임스페이스 (0) | 2023.06.16 |
[솔리디티 입문] 2. 참조형(reference type) (0) | 2023.06.16 |
[솔리디티 입문] 1. 값형(value type) (0) | 2023.06.16 |
솔리디티 스마트 컨트랙트에서 상태 변수는 컨트랙트의 영구적인 저장소인 스토리지(Storage)에 저장되는 변수입니다. 이러한 상태 변수들은 컨트랙트의 상태를 관리하며, 블록체인에 기록되어 외부에서 조회하거나 변경할 수 있습니다. 이 글에서는 상태 변수의 특징 및 사용 방법에 대해 알아봅시다.
상태 변수 선언 및 초기화
상태 변수는 컨트랙트 내부에서 선언되며, 컨트랙트가 배포될 때 초기화됩니다. 상태 변수는 다양한 타입으로 선언할 수 있으며, 초깃값을 명시적으로 지정할 수 있습니다.
pragma solidity ^0.8.0;
contract StateVariablesExample {
uint public counter; // 초깃값을 지정하지 않으면 0으로 초기화됩니다.
string public message = "Hello, World!";
address public owner;
constructor() {
owner = msg.sender;
}
}
상태 변수의 가시성
상태 변수는 가시성을 지정하여 외부에서의 접근을 제한할 수 있습니다. 가시성은 public, internal, private 중 하나를 선택할 수 있습니다.
- public: 외부에서 상태 변수를 읽을 수 있으며, 컴파일러는 자동으로 getter 함수를 생성합니다.
- internal: 상태변수가 선언된 컨트랙트 및 상속된 컨트랙트에서만 접근할 수 있습니다.
- private: 상태변수가 선언된 컨트랙트에서만 접근할 수 있습니다.
pragma solidity ^0.8.0;
contract VisibilityExample {
uint public publicVar = 1;
uint internal internalVar = 2;
uint private privateVar = 3;
function getPrivateVar() public view returns (uint) {
return privateVar;
}
}
상태 변수의 수정
상태 변수는 컨트랙트 내의 함수에서 변경할 수 있습니다. 상태 변수가 변경되면 변경된 값이 블록체인에 기록되며, 이전의 상태는 영구적으로 덮어쓰여집니다.
pragma solidity ^0.8.0;
contract Counter {
uint public count;
function increment() public {
count += 1;
}
function decrement() public {
count -= 1;
}
}
'블록체인 (Block Chain) > 이더리움' 카테고리의 다른 글
[솔리디티 입문] 6. 함수 제어자 (0) | 2023.06.16 |
---|---|
[솔리디티 입문] 5. 함수 (0) | 2023.06.16 |
[솔리디티 입문] 3. 글로벌 네임스페이스 (0) | 2023.06.16 |
[솔리디티 입문] 2. 참조형(reference type) (0) | 2023.06.16 |
[솔리디티 입문] 1. 값형(value type) (0) | 2023.06.16 |