변수
변수 정의는 모든 프로그래밍 언어의 기본 부분입니다.이 섹션에서는 다음을 살펴보겠습니다. 솔리디티에서 정의할 수 있는 다양한 유형의 변수
변수 정의
변수는 다음 구문을 사용하여 정의됩니다.
// <type> <name> = <value?>;
uint256 myVariable = 123;
uint256 myOtherVariable;
📘 변수 기본값
변수에 값을 할당하지 않으면 기본값이 할당됩니다.디폴트 값은 변수 유형에 따라 달라집니다. 일반적으로 유형 이름에서 기본값을 유추할 수 있습니다.예를 들어,
uint256
기본값은0
, 및bool
기본값은false
. 정수의 값이 다음과 같을 것으로 예상하지 못할 수도 있으므로 스마트 계약을 작성할 때 이 점을 염두에 두십시오.0
처음 정의할 때
정수 및 부울
정수 유형은 정수를 나타내는 데 사용됩니다.부호 (양수 또는 음수) 또는 부호 없음 (양수만) 일 수 있습니다.
정수 유형 | 설명 |
---|---|
bool | 부울 (참/거짓) |
int8 | 부호 있는 8비트 정수 |
int16 | 부호있는 16비트 정수 |
int32 | 부호 있는 32비트 정수 |
int64 | 부호있는 64비트 정수 |
int128 | 부호 있는 128비트 정수 |
int256 | 부호있는 256비트 정수 |
uint8 | 부호 없는 8비트 정수 |
uint16 | 부호 없는 16비트 정수 |
uint32 | 부호 없는 32비트 정수 |
uint64 | 부호 없는 64비트 정수 |
uint128 | 부호 없는 128비트 정수 |
uint256 | 부호 없는 256비트 정수 |
주소
주소 유형은 이더리움 주소를 나타내는 데 사용됩니다.다음 중 하나일 수 있습니다. address
또는 address payable
.
주소 유형 | 설명 |
---|---|
address | 이더리움 주소 |
address payable | 이더를 보내고 받을 수 있는 이더리움 주소 |
고정 크기 바이트 배열
고정 크기 바이트 배열은 바이트 시퀀스를 나타내는 데 사용됩니다.다음 중 하나일 수 있습니다. bytes
또는 bytes32
.
고정 크기 바이트 배열 | 설명 |
---|---|
bytes | 동적 바이트 시퀀스 |
bytes1 에 bytes32 | 고정 크기 바이트 시퀀스 |
string | UTF-8 바이트의 동적 시퀀스 |
📘 열거형 기본 값
열거형의 각 값에는 기본 값이 있습니다.기본적으로 첫 번째 값의 기본 값은
0
, 이후의 각 값에는 이전 값보다 하나 큰 기본 값이 있습니다.
구조체
구조체 유형은 사용자 지정 데이터 컨테이너를 나타내는 데 사용됩니다.다음 구문을 사용하여 정의할 수 있습니다.
struct MyStruct {
uint256 myUint;
bool myBool;
}
배열
배열은 값 모음을 나타내는 데 사용됩니다.크기가 고정되거나 동적일 수 있습니다.
어레이 | 설명 |
---|---|
uint256[] | 부호 없는 256비트 정수의 동적 배열 |
uint256[5] | 길이가 5인 부호 없는 256비트 정수로 구성된 고정 크기 배열 |
위 목록에는 정수 배열만 표시되지만 모든 유형의 배열을 정의할 수 있습니다.
bool[] myBoolArray;
address payable[] myAddressArray;
다차원 배열을 정의할 수도 있습니다.
uint256[][] myMultiDimensionalArray;
배열 액세스/할당은 다음 구문을 사용하여 수행됩니다.
myArray[index] = 123;
myOtherArray[indexA][indexB] = 456;
매핑
매핑은 키-값 저장소를 나타내는 데 사용됩니다.다음 구문을 사용하여 정의할 수 있습니다.
// mapping(<key type> => <value type>) <name>;
mapping(address => uint256) myMapping;
다차원 매핑을 정의할 수도 있습니다.
mapping(address => mapping(address => uint256)) myMultiDimensionalMapping;
매핑 액세스/할당은 배열에 액세스하는 것과 같은 방식으로 수행됩니다.
myMapping[myAddress] = 123;
myOtherMapping[myAddress][myOtherAddress] = 456;
열거형
Enum 유형은 고정된 값 집합을 나타내는 데 사용됩니다.다음 구문을 사용하여 정의할 수 있습니다.
enum MyEnum {
Value1,
Value2,
Value3
}