반응형
솔리디티는 크게 3가지 타입으로 나뉜다.
- 데이터 타입
- 레퍼런스 타입
- 매핑 타입
데이터 타입
- boolean
- bytes
- address
- uint
boolean
true / false
//boolean : true / false
bool public b = false;
먼저 데이터 타입을 정의하고 접근제한자를 쓴 후 변수명을 작성한다.
b라는 변수에 boolean type false가 들어간다는 뜻이다.
// SPDX-License-Identifier: GPL-30
pragma solidity >= 0.7 < 0.9.0;
contract lec2{
//data type
//boolean, bytes, address, uint
//boolean : true / false
bool public b = false;
// ! || == &&
bool public b1 = !false; //true
bool public b2 = false || true; //true
bool public b3 = false == true; //false
bool public b4 = false && true; //false
}
다른 언어와 마찬가지로 not 같은 연산자가 존재한다.
배포를 하고 결과를 확인한다.
bytes
//bytes 1 ~ 32
bytes4 public bt = 0x12345678;
bytes public bt2 = "STRING";
- 바이트는 1 ~ 32byte까지 저장할 수 있는데 만약에 4byte만 저장한다고 했을 때 bytes4로 명시할 수 있다.
- 0x12345678은 하나당 4bit이기 때문에 2개는 1byte이다.
- bytes만 쓰면 string을 넣을 수 있다.
배포를 해서 확인하면 bt에는 0x12345678이 저장되었고, bt2는 스트링이 바이트화 되어서 변환된 것을 알 수 있다.
address
- 은행 계좌를 개설하면 각 사람마다 고유 계좌가 생기고, 계좌를 통해서 돈을 주고받는다. 여기서 계좌번호를 address라고 생각하면 된다.
- Ethereum을 송수신할 때 사용한다.
- 꼭 사람한테만 보여주는게 아니라 스마트 컨트랙을 배포할 때도 address가 발생된다.
- 스마트 컨트랙마다 배포가 되면 address가 생긴다.
배포한 스마트 컨트랙인 lec2를 보면 address가 존재한다.
0xf8e81D47203A594245E36C48e151709F0C19fBe8
//address
address public addr = 0xf8e81D47203A594245E36C48e151709F0C19fBe8;
위와 같이 address를 사용할 수 있다.
사실상 20바이트이고 총 길이가 40개이다.
위와 같이 배포된 것을 알 수 있고, 새롭게 배포함으로써 이 스마트 컨트랙에 배포한 주소와 달라진 것을 확인할 수 있다.
uint
int와 uint는 간단하게 마이너스의 유무로 차이가 난다.
마이스너를 잘 안 쓰기 때문에 uint를 많이 사용한다.
//int vs uint
//int8
// -2^7 ~ 2^7-1
int8 public it = 4;
//uint8
// 0 ~ 2^8-1
uint256 public uit = 132213;
배포를 하면 위와 같이 잘 출력되는 것을 확인할 수 있다.
int에서도 마찬가지로 ' + - * / ' 연산기호를 사용할 수 있다.
주의할 점
범위를 넘기게 되면 오류가 난다.
반응형
'PBL > 솔리디티' 카테고리의 다른 글
function 3 - View 와 Pure (0) | 2024.05.07 |
---|---|
function 2 - public,private,internal, external (0) | 2024.05.07 |
Function 1 - 정의 (0) | 2024.04.30 |
Ether/GWei/wei 그리고 Gas (0) | 2024.04.30 |
Hello Solidity (0) | 2024.04.15 |