这里讲一下
- 类型转换
- 重置变量
类型转换
将一个类型转换为另一个类型,分为
- 隐式转换
- 显式转换
隐式转换
运算符两边有不同的类型,不会丢失数据下,编译器会尝试隐式转换。
uint8 -> uint16,uint256;
uint16,uint256 -> uint8; // 这个不行,不能隐式转换
显式转换
如果编译器不允许隐式转换,但是自己可以强制显示转换
uint32 a = 0x123456;
uint16 b = uint16(a);
重置变量 delete
bool -> false;
uint -> 0;
address -> 0x0;
bytes -> 0x0;
string -> "";
uint[] memory a = new uint[](7);
delete a; // a.length = 0
Custom c = Custom(true,1);
delete c; // (false,1)
delete
对映射无效delete
不影响值拷贝的变量