跳至主要内容
此页面是从英文翻译而来的。请注意,与原始页面相比,可能会出现错误或差异。真实的文档来源应始终是英文版本。

变量

定义变量是任何编程语言的基本组成部分。在本节中,我们将看看 您可以在 Solidity 中定义的不同类型的变量。

定义变量

变量使用以下语法定义:

// <type> <name> = <value?>;
uint256 myVariable = 123;
uint256 myOtherVariable;

📘 可变默认值

如果不为变量赋值,则会为其分配默认值。默认值取决于变量的类型。 通常,您可以从类型名称中推断出默认值。例如, uint256 将默认为 0,以及 bool 将默认为 false. 在编写智能合约时请记住这一点,因为你可能不希望整数的值为 0 当你第一次定义它时。

整数和布尔值

整数类型用于表示整数。它们可以是有符号的(正数或负数),也可以是无符号的(仅限正数)。

整数类型
bool
int8
int16
int32
int64
int128
int256
uint8
uint16
uint32
uint64
uint128
uint256

地址

地址类型用于表示以太坊地址。它们可以是 address 要么 address payable

地址类型
address
address payable

固定大小的字节数组

固定大小的字节数组用于表示字节序列。它们可以是 bytes 要么 bytes32

固定大小的字节数组
bytes
bytes1bytes32
string

📘 枚举基础价值

枚举中的每个值都有一个基础值。默认情况下,第一个值的基础值为 0, 并且每个后续值都有一个比前一个值大一的基础值。

结构

结构类型用于表示自定义数据容器。可以使用以下语法定义它们:

struct MyStruct {
uint256 myUint;
bool myBool;
}

数组

数组用于表示值的集合。它们可以是固定大小的也可以是动态的。

数组
uint256[]
uint256[5]

虽然上面的列表只显示整数数组,但你可以定义任何类型的数组。

bool[] myBoolArray;
address payable[] myAddressArray;

您也可以定义多维数组。

uint256[][] myMultiDimensionalArray;

使用以下语法访问/分配数组:

myArray[index] = 123;
myOtherArray[indexA][indexB] = 456;

映射

映射用于表示键值存储。可以使用以下语法定义它们:

// mapping(<key type> => <value type>) <name>;
mapping(address => uint256) myMapping;

您也可以定义多维映射。

mapping(address => mapping(address => uint256)) myMultiDimensionalMapping;

访问/分配映射的方式与访问数组的方式相同。

myMapping[myAddress] = 123;
myOtherMapping[myAddress][myOtherAddress] = 456;

枚举

枚举类型用于表示一组固定的值。可以使用以下语法定义它们:

enum MyEnum {
Value1,
Value2,
Value3
}