全球即时:Solidity开发基础——数据类型

哔哩哔哩   2023-06-22 15:27:03

基本概念

Solidity中关于数据类型的定义如下:


(资料图片)

Solidity是一种静态类型语言,这意味着每个变量都需要在编译时指定变量的类型;

Solidity中新声明的变量总是有一个默认值,具体的默认值跟类型有关,例如bool类型的默认值为false。

数据类型

值类型

Solidity提供的基本数据类型。这些类型的变量总是通过值传递的,变量在函数参数或赋值语句中使用时都会被复制。有以下几类值类型的数据类型:

布尔类型

bool:可接受 truefalse两个值,默认为 false

整型

intuint:分别表示有符号和无符号的整数,默认为0。支持关键字 int8int256,以及 uint8uint256,从8位到256位,以8位为步长递增,intuint分别是 int256uint256的别名。

地址类型

address:包含一个20字节的值(代表一个以太坊地址的大小)。一个地址可以用来获取余额,也可以通过转账的方式来转移余额。

字节类型

bytes1bytes2,...,bytes32:字节用于存储固定大小的字符集,长度范围是1 ~ 32。字节的一个优点是它使用更少的Gas,所以当我们知道数据的长度时,最好使用它。

字符串类型

string:字符串用于存储等于或大于一个字节的字符集,字符串的长度是动态的。

枚举类型

enum:创建用户定义的数据类型,用于为一个整型常量分配一个名称,这使得合约具有可读性、可维护性和更不容易出错。枚举的选项可以用从0开始的无符号整数值表示。

语法如下:

enum <enum_name> { element 1, element 2, ..., element n }

引用类型

引用类型变量存储数据的位置。在引用类型的定义中,两个不同的变量可以引用同一个位置,其中一个变量的任何更改都会影响另一个变量。引用类型包括数组、结构和映射。关于引用类型,我们将在后面的课程中单独介绍。

合约例子

例子1

基本数据类型的声明与用法。

输出:我们在Remix中编译、部署和运行上面的合约例子,执行结果如下图:

例子2

枚举类型的声明及用法。

输出:我们在Remix中编译、部署和运行上面的合约例子,执行结果如下图: