Solidity Type

전진영·2022년 3월 4일
0

Type

solidity는 컴파일 시점에 각 변수의 타입이 명시되어야하는 정적 타입 언어입니다. solidity는 몇 가지의 기본 타입을 제공하며 이를 조합해서 복합 타입을 만들 수 있습니다.

Value Type

다음의 타입들은 변수가 전달될 때 값이 전달되므로 값 타입이라고도 불립니다. 즉, 이 타입이 함수의 인자로 사용되거나 할당값으로 사용될 땐, 값이 복사됩니다.

Booleans

bool: 가능한 값은 상수 true 그리고 false 입니다.

bool public b = false;

!(논리 부정)
||(논리 OR, "or")
==(같음)
&&(논리 AND, "and")
!= (같지 않음)

|| 과 && 에는 일반적인 short-circuiting rules이 적용됩니다. 이것은 f(x) || g(y) 에서 만약 f(x) 가 true 라면, g(y) 의 값을 확인하지 않는다면 부작용이 있을 수 있음에도 불구하고 값을 확인하지 않는것을 의미합니다.

bool public b1 = !false; // => true
bool public b2 = false || true; // => true
bool public b3 = false == true; // => false
bool public b4 = false && true; // => false

byte

byte4 public bt = 0x12345678;
bytes public bt2 = "STRING"

address

은행계좌를 개설을하면 계좌번호로 생각하면된다.
address : 20바이트(이더리움 address의 크기)를 담을 수 있습니다.
address 타입에는 멤버가 있으며 모든 컨트랙트의 기반이 됩니다.

address의 members
balance 속성을 이용하여 address의 잔고를 조회하고 transfer 함수를 이용하여 다른 address에 Ether를 (wei 단위로) 보낼 수 있습니다:

address x = 0x123;
address myAddress = this;
if (x.balance < 10 && myAddress.balance >= 10) x.transfer(10);
address public addr = 	0x5B38Da6a701c568545dCfcB03FcB875f56beddC4

정수(int, uint)

int / uint: 다양한 크기의 부호있는 정수 타입, 부호없는 정수 타입이 존재합니다. uint8 에서 uint256 까지, 그리고 int8 부터 int256 까지 8비트 단위로 키워드가 존재합니다. uint 와 int 는 각각 uint256 와 int256 의 별칭입니다.

연산자:

비교 연산자: <=, <, ==, !=, >=, > (bool 결과값을 가짐)
비트 연산자: &, |, ^ (배타적 비트 or), ~ (비트 보수)
산술 연산자: +, -, 단항 -, 단항 +, *, /, % (나머지), ** (거듭제곱), << (왼쪽 시프트), >> (오른쪽 시프트)

profile
코딩어린이

0개의 댓글