Solidity 数据类型分两大类:
值类型(直接存值)
类型说明示例bool布尔true / falseint / uint有符号/无符号整数,可指定位数 8~256int8 uint256(默认)address地址,20 字节address payable 可收款bytes1~bytes32定长字节数组bytes32enum枚举enum State { A, B }
引用类型(存位置引用,需指定 memory/calldata/storage)
类型说明string字符串bytes变长字节数组数组 T[]如 uint[] address[],可定长 uint[5]结构体 struct自定义复合类型映射 mapping键值对,只能存 storage
写个示例
Data type.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
//Data types
contract ValueTypes {
uint public count = 0; // 无符号整数
bool public isReady = true; // 布尔
address public owner; // 地址
string public name = "hello"; // 字符串
uint[] public list; // 动态数组
mapping(address => uint) public balances; // 映射(哈希表)
bytes32 public hash = keccak256(abi.encodePacked("hello")); // 定长32字节,常用于存哈希
bytes32 public fixedHex = 0x0000000000000000000000000000000000000000000000000000000000001234; // 32字节十六进制
}
