Độ rắn - Các loại
Trong khi viết chương trình bằng bất kỳ ngôn ngữ nào, bạn cần sử dụng các biến khác nhau để lưu trữ các thông tin khác nhau. Các biến không là gì ngoài các vị trí bộ nhớ dành riêng để lưu trữ các giá trị. Điều này có nghĩa là khi bạn tạo một biến, bạn dành một số không gian trong bộ nhớ.
Bạn có thể muốn lưu trữ thông tin của nhiều kiểu dữ liệu khác nhau như ký tự, ký tự rộng, số nguyên, dấu phẩy động, dấu chấm động kép, boolean, v.v. Dựa trên kiểu dữ liệu của một biến, hệ điều hành phân bổ bộ nhớ và quyết định những gì có thể được lưu trữ trong bộ nhớ dành riêng.
Các loại giá trị
Solidity cung cấp cho lập trình viên một loạt các kiểu dữ liệu tích hợp sẵn cũng như do người dùng xác định. Bảng sau liệt kê bảy kiểu dữ liệu C ++ cơ bản:
Kiểu | Từ khóa | Giá trị |
---|---|---|
Boolean | bool | đúng sai |
Số nguyên | int / uint | Các số nguyên có dấu và không dấu có kích thước khác nhau. |
Số nguyên | int8 đến int256 | Đã ký int từ 8 bit đến 256 bit. int256 giống với int. |
Số nguyên | uint8 đến uint256 | Int không dấu từ 8 bit đến 256 bit. uint256 cũng giống như uint. |
Số điểm cố định | cố định / không cố định | Số điểm cố định có dấu và không dấu có kích thước khác nhau. |
Số điểm cố định | cố định / không cố định | Số điểm cố định có dấu và không dấu có kích thước khác nhau. |
Số điểm cố định | fixedMxN | Số điểm cố định có dấu trong đó M đại diện cho số bit được lấy theo loại và N đại diện cho các điểm thập phân. M nên chia hết cho 8 và đi từ 8 đến 256. N có thể từ 0 đến 80. cố định giống với cố định.128x18. |
Số điểm cố định | ufixedMxN | Số điểm cố định không dấu trong đó M đại diện cho số bit được lấy theo loại và N đại diện cho các điểm thập phân. M nên chia hết cho 8 và đi từ 8 đến 256. N có thể từ 0 đến 80. ufixed giống như ufixed128x18. |
Địa chỉ
địa chỉ giữ giá trị 20 byte đại diện cho kích thước của địa chỉ Ethereum. Một địa chỉ có thể được sử dụng để lấy số dư bằng phương pháp .balance và có thể được sử dụng để chuyển số dư sang một địa chỉ khác bằng phương thức .transfer.
address x = 0x212;
address myAddress = this;
if (x.balance < 10 && myAddress.balance >= 10) x.transfer(10);