solidity学习(七)-- 数据类型
solidity官方文档太多了,我今天实在不想自己总结了,所以这部分的学习引用了CSDN的:
https://blog.csdn.net/lj900911/article/details/83037625
感谢这位博主。
0x01 solidity数据类型分类
值类型:布尔类型(bool)、整型(int)、地址类型(address)、定长字节数组(bytes)、枚举类型(enum)、函数类型(function);
引用类型:字符串(string)、数组(array)、结构体(structs)、映射(mapping)、不定长字节数组(bytes)
0x02 具体说明
【下次做一个表格 今天先占个坑】
1、整型:
solitity中的整型与JavaScript不同,该类型支持有符号(int)或无符号(uint)两种类型,也支持从uint8到uint256,以及从int8到int256等多种类型。所以长度是 2**8~2**256字节。
2、地址类型(address)
以太坊中的地址的长度为20字节,一字节等于8位,一共160位,所以address其实亦可以用uint160来声明。
3、枚举类型(enum)
一个变量可能的取值都知道,就可以把它定义为枚举型,然后把变量的值一一列出来,令变量的值只限于列举出来的值的范围内。例如月份、星期几、天气等情况,枚举类型用enum关键字来定义。
enum weekday{sun,mon,tue,wed,the,fri,sat};
4、结构体(struct)
5、映射
mapping(_KeyType => _ValueType)
mapping不是数据类型,mapping(address => uint)才是用来声明变量balances的数据类型。
6、数组
solidity中数组可以分为可变数组和不可变数组。
7、字符串、动态字节数组和固定字节数组 三者相互转换