Lập trình Solidity - Kiểu dữ liệu và Enum

1. Kiểu dữ liệu bool

bool data = true;  // false

2. Kiểu dữ liệu int (là kiểu dữ liệu chứa cả số nguyên âm và nguyên dương)

int dataInterge = 10;

3. Kiểu dữ liệu dữ liệu uint (là kiểu dữ liệu chỉ tồn tại số nguyên dương)

uint dataUnsignedInteger = 10;

4. Kiểu dữ liệu string

string dataString = "Hello";

5. Kiểu dữ liệu address 

address myAdress = msg.sender;

- Tạo 1 contract đơn giản game.sol

pragma solidity >=0.7.0 <0.9.0;

contract Game {

    player[] public players;
    uint public counPlayer = 0;

    struct player {
        string fullName;
        uint age;
        string sex;
    }

    function addPlayer (string memory fullName, uint age, string memory sex) public {
        players.push(player(fullName, age, sex));
        counPlayer += 1;
    }
}

Thực hiện deploy, nhập thông tin theo cac bước dưới đây và kết quả như hình dưới đây:

6. Kiểu dữ liệu mapping

- Là kiểu dữ liệu ánh xạ cho phép tạo ra các cặp giá trị key-value và lưu thành các danh sách.

- Có 2 loại key chính thường được sử dụng trong mappingaddressuint

contract Game {

    uint public countPerson = 0;
    mapping (address => person) public persons;

    struct person {
        address addressPerson;
        string name;
        uint age;
        string sex;
    }

    function addPerson(string memory name, uint age, string memory sex) public {
        persons[msg.sender] = person(msg.sender, name, age, sex);
        countPerson++;
    }
}

7. Kiểu dữ liệu Enum

- Là kiểu dữ liệu danh sách và các bạn chỉ được chọn 1 trong các dữ liệu chứa trong nó và chỉ lấy được dữ liệu duy nhất.

- Khi nào bạn cần xác định giá trị của biến A chỉ được phép nằm trong những giá trị có trong biến Enum B.

contract Game {

    uint public countPerson = 0;
    mapping (address => person) public persons;
    enum Level {Beginer, Intermediate, Advance}

    struct person {
        address addressPerson;
        string name;
        uint age;
        string sex;
        Level myLevel;
    }

    function addPerson(string memory name, uint age, string memory sex) public {
        persons[msg.sender] = person(msg.sender, name, age, sex, Level.Beginer);
        countPerson++;
    }
}