0%

solidity | 类型转换

这里讲一下

  • 类型转换
  • 重置变量

类型转换

将一个类型转换为另一个类型,分为

  • 隐式转换
  • 显式转换

隐式转换

运算符两边有不同的类型,不会丢失数据下,编译器会尝试隐式转换。

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 不影响值拷贝的变量
请我喝杯咖啡吧~