在Solidity中,有几种原始的数据类型,以下是每种类型和它们的一般用途:
true或false。它常常在逻辑判断中使用。int8, uint16, int256, uint64等。默认的int和uint是int256和uint256。这些类型常常用在算数运算中。每种类型都有特定的用途,并且在智能合约中扮演了重要的角色。在编写智能合约时,选择合适的数据类型可以优化性能,降低gas消耗,并增强代码的可读性和可维护性。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract DataTypes {
bool public boo; // 默认为false
/* uint,无符号整数,
uint8 范围: 0 ~ 2 ** 8 - 1
uint16 范围: 0 ~ 2 ** 16 - 1
uint32 范围: 0 ~ 2 ** 32 - 1
...
uint256 范围: 0 ~ 2 ** 256 - 1
*/
uint8 public u8 = 1;
uint16 public u16 = 15;
uint256 public u256 = 2345;
/* int,有符号整数,
int8 范围: -2 ** 7 ~ 2 ** 7 - 1
int16 范围: -2 ** 15 ~ 2 ** 15 - 1
int32 范围: -2 ** 31 ~ 2 ** 31 - 1
...
int256 范围: -2 ** 255 ~ 2 ** 255 - 1
*/
int8 public i8 = 1;
int16 public i16 = -15;
int256 public i256 = -2345;
// uint 最大值、最小值,uint 与 uint256 一样
uint256 public maxUint256 = type(uint256).max;
uint public maxUint = type(uint).max;
uint256 public minUint256 = type(uint256).min;
uint public minUint = type(uint).min;
// int 最大值、最小值 int 与 int256 一样
int256 public maxInt256 = type(int256).max;
int public maxInt = type(int).max;
int256 public minInt256 = type(int256).min;
int public minInt = type(int).min;
// address类型
address public addr; // 默认值:0x0000000000000000000000000000000000000000
address public owner = msg.sender; // 合约部署所有者地址 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4
// byte类型
bytes1 public a; // 默认:0x00
bytes1 public b = 0x88;
bytes public myBytes; // 默认: 0x
// string类型
string public s = "hello world";
string public s1; // 默认:""
// mapping类型
mapping(address => uint) public accounts;
}
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
腾讯云开发者社区:孟斯特