下面我们介绍solidity中的几种基本的数据类型:
booleanuintintaddress
// 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
}