有关最新版本的内容,请参见Cyfrin.io上的基本数据类型(代码示例)
以下介绍一些Solidity中可用的基本数据类型
booleanuint256int256address
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
contract Primitives {
bool public boo = true;
/*
uint代表无符号整数,意味着非负整数
有不同大小的非负整数
uint8 取值范围从 0 到 2 ** 8 - 1
uint16 取值范围从 0 到 2 ** 16 - 1
...
uint256 取值范围从 0 到 2 ** 256 - 1
*/
uint8 public u8 = 1;
uint256 public u256 = 456;
uint256 public u = 123; // uint 是 uint256 的别名
/*
int类型允许使用负数。 和uint一样,不同范围从int8到int256不等
int256 取值范围从 -2 ** 255 到 2 ** 255 - 1
int128 取值范围从 -2 ** 127 到 2 ** 127 - 1
*/
int8 public i8 = -1;
int256 public i256 = 456;
int256 public i = -123; // int 与 int256 相同
// int的最小最大值
int256 public minInt = type(int256).min;
int256 public maxInt = type(int256).max;
address public addr = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;
/*
在 Solidity 中,数据类型byte表示一串字节。
Solidity提供了两种类型的字节:
- 固定大小的字节数组
- 动态大小的字节数组。
Solidity中的bytes表示一个动态字节数组。 它是byte[]的简写。
*/
bytes1 a = 0xb5; // [10110101]
bytes1 b = 0x56; // [01010110]
// 各类型的默认值
// 未赋值的变量为默认值
bool public defaultBoo; // false
uint256 public defaultUint; // 0
int256 public defaultInt; // 0
address public defaultAddr; // 0x0000000000000000000000000000000000000000
}
Remix Lite 尝试一下
END