BloCCat

solidity 기초 (1) 본문

Study/Solidity

solidity 기초 (1)

uooy 2021. 8. 29. 16:54

1. license & version 설정

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0; // 0.7.0~0.9.0 사이의 버전을 사용
//pragma solidity ^0.8.6 = 특정 버전(0.8.6) 지정 사용

 

2. contract 생성  = java의 class 생성과 유사

pragma solidity ^0.4.19;

contract ZombieFactory {
}

3. 자료형

  • uint : 부호가 없는 정수형 (음수 x) -> uint8, uint16,uint32 과 같이 비트제한 가능, 제한 없으면 256비트
  • int : 정수형 -> int와 마찬가지로 비트제한이 가능하며 없으면 256비트
  • bool : 논리 자료형
  • string : UTF-8 인코딩 문자열
  • bytes : 바이트
  • address : 이더리움 주소 값 (0xaDc7192A0…)

4.수학 연산

다른 언어와 마찬가지로 기본 연산에 지수 연산까지 지원

uint x = 5 ** 2; // = 5^2 = 25

 

5.구조체와 배열

struct Person {
  uint age;
  string name;
}

// 2개의 원소를 담을 수 있는 고정 길이의 배열:
uint[2] fixedArray;
// 또다른 고정 배열으로 5개의 스트링을 담을 수 있다:
string[5] stringArray;
// 동적 배열은 고정된 크기가 없으며 계속 크기가 커질 수 있다:
uint[] dynamicArray;

Person[] people; // 구조체인 Person타입의 동적배열 생성

 

6. public 배열

Person[] public people;

배열을 public으로 선언하면 solidity는 getter 매소드를 자동적으로 생성하여 다른 컨트랙트들이 배열을 읽을 수 있게 해줌(수정은 불가)

'Study > Solidity' 카테고리의 다른 글

효율적인 Contract 작성법 (1)  (0) 2021.08.29
Ownable.sol  (0) 2021.08.29
solidity 기초 (3)  (0) 2021.08.29
solidity 기초(2)  (0) 2021.08.29
Soilidity란?  (0) 2021.08.29