Solidity 数据类型
在用任何语言编写程序时,都需要使用变量来存储各种信息。变量是内存空间的名称,变量有不同类型,例如整型、字符串类型等等。操作系统根据变量的数据类型分配内存。
Solidity中,变量类型有以下几大类:
值类型
地址类型
引用类型
值类型
类型 |
保留字 |
取值 |
布尔型 |
bool |
true/false |
整型 |
int/uint |
有符号整数/无符号整数。 |
整型 |
int8 to int256 |
8位到256位的带符号整型数。int256与int相同。 |
整型 |
uint8 to uint256 |
8位到256位的无符号整型。uint256和uint是一样的。 |
定长浮点型 |
fixed/unfixed |
有符号和无符号的定长浮点型 |
定长浮点型 |
fixedMxN |
带符号的定长浮点型,其中M表示按类型取的位数,N表示小数点。M应该能被8整除,从8到256、N可以是0到80。fixed与fixed128x18相同。 |
定长浮点型 |
ufixedMxN |
无符号的定长浮点型,其中M表示按类型取的位数,N表示小数点。M应该能被8整除,从8到256、N可以是0到80。fixed与fixed128x18相同。 |
地址类型
地址类型表示以太坊地址,长度为20字节。地址可以使用
.balance方法获得余额,也可以使用
.transfer方法将余额转到另一个地址。
address x = 0x212;
address myAddress = this;
if (x.balance < 10 && myAddress.balance >= 10)
x.transfer(10);
引用类型/复合数据类型
Solidity中,有一些数据类型由值类型组合而成,相比于简单的值类型,这些类型通常通过名称引用,被称为引用类型。
引用类型包括:
数组 (字符串与bytes是特殊的数组,所以也是引用类型)
struct (结构体)
map (映射)