Solidity中的基本数据类型

647 阅读1分钟

下面我们介绍solidity中的几种基本的数据类型:

  • boolean
  • uint
  • int
  • address
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract Primitives {
    bool public boo = true;

    /*
    uint表示unsigned integer, 意思是非负的整数
    有多种不同大小的uint
        uint8   取值范围从 0 到 2 ** 8 - 1
        uint16  取值范围从 0 到 2 ** 16 - 1
        ...
        uint256 取值范围从 0 到 2 ** 256 - 1
    */
    uint8 public u8 = 1;
    uint public u256 = 456;
    uint public u = 123; // uint是uint256的别名

    /*
    负数可以用int类型来表示
    和uint一样,不同大小的int可供使用,从 int8 到 int256
    
    int256 取值范围从 -2 ** 255 到 2 ** 255 - 1
    int128 取值范围从 -2 ** 127 到 2 ** 127 - 1
    */
    int8 public i8 = -1;
    int public i256 = 456;
    int public i = -123; // int是int256的别名

    // int的最大值和最小值
    int public minInt = type(int).min;
    int public maxInt = type(int).max;

    address public addr = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;

    /*
    在solidity中,byte类型代表一段连续的字节
    其中提供了两种类型来表示字节:

     - fixed-sized byte arrays
     - dynamically-sized byte arrays.
     
     bytes表示动态大小数组的字节
     也是byte[]的缩写.
    */
    bytes1 a = 0xb5; //  [10110101]
    bytes1 b = 0x56; //  [01010110]

    // 各类型的默认值
    // 未分配值得变量都会有一个其类型的默认值
    bool public defaultBoo; // false
    uint public defaultUint; // 0
    int public defaultInt; // 0
    address public defaultAddr; // 0x0000000000000000000000000000000000000000
}