주요 자료형
- uint : 부호가 없는 정수형
- int : 정수형
- bool : 논리 자료형
- string : UTF-8 인코딩 문자열
- bytes : 바이트
- address : 이더리움 주소 값 (0xaDc7192A0…)
레퍼런스 자료형
- 배열 : 자료형이 같은 데이터를 묶은 자료 구조입니다.
- 구조체 : 다양한 자료형의 데이터를 묶은 자료 구조입니다.
예제 1번
다음과 같이 입력해주시고 다시 compile을 하고 run에서 create 버튼을 클릭합니다.
pragma solidity ^0.4.24;
contract Simpleexample {
string public name = "James";
uint128 public birthday = 20180328;
uint[] setOfYear = [2018, 2019, 2020];
uint year = setOfYear[0];
bool isHappy = true;
function getYear() public view returns (uint) {
return year;
}
function getHappy() public constant returns (bool) {
return isHappy;
}
}
string public name = "James";
uint128 public birthday = 20180328;
uint[] setOfYear = [2018, 2019, 2020];
uint year = setOfYear[0];
bool isHappy = true;
각각의 자료형에 맞는 변수를 선언하고 값을 대입합니다. public이라고 명시를 하는경우만 접근지정자가 public이 되는 것을 확인하실 수 있습니다.
function getYear() public view returns (uint) {
return year;
}
function getHappy() public constant returns (bool) {
return isHappy;
}
함수의 선언방식입니다. 기존언어들과는 다르게 접근지정자를 뒤에 쓰는게 인상적입니다. returns (자료형) 으로 반환할 자료형을 전달하는 형식이고 return에 반환할 값을 입력하는 형태입니다.
그리고 주석은 c와 동일하게 줄주석은 // 구역주석은 /* */ 를 사용합니다.
솔리디티의 연산자(Operator)
- 논리 연산자: !, &&, ||
- 비교 연산자 : <=, <, ==, !=, >=, >
- 비트 연산자: &, |, ^, <<, >> (시프트 연산자)
- 단항(unary) 산술 연산자: +, -
- 이항(binary) 산술 연산자: +, -, *, / (몫), % (나머지), ** (거듭 제곱)
제어문(Control Structures)
- 조건문: if, else, ? : (삼항 연산자)
- 반복문: while, do, for
- 반복문 분기: break, continue
- 반환문: return
예제 2번
pragma solidity ^0.4.24;
contract Simpleexample {
uint t1 = 0;
bool t2 = false;
function playground() public returns (uint, bool) { // multi return type
for (uint i = 0; i < 10; i++) {
t1++;
}
t2 = 2 ** 3 == 8 &&t1 == 10;
return (t1, t2);
}
}
결과는 직접확인해보세요!
팁: 솔리디티가 부동소수점을 지원하지 않는 이유
부동소수점 타입으로는 수를 정확하게 표현하지 못합니다.
수를 정확히 다룰 수 없는 타입은 이더(Ether)를 다룰 수 없어, 솔리디티는 부동소수점을 지원하지 않습니다.
'Blockchain 개발 > Solidity 프로그래밍' 카테고리의 다른 글
Solidity Event란? (0) | 2020.02.09 |
---|---|
Solidity 이더리움 송금하기 (0) | 2020.02.09 |
Solidity 실행하기 (0) | 2020.02.08 |