1 Star 0 Fork 0

zhupeng911/solidity

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
14-test_Cast.sol 1.72 KB
一键复制 编辑 原始数据 按行查看 历史
朱鹏 提交于 2018-11-12 16:52 +08:00 . 类型转换与删除变量
pragma solidity ^0.4.25;
//类型转换 与 delete重置变量
contract testCast{
//1、类型转换
//低类型转换为高类型,高类型不可以转换为低类型
function add() public pure returns(uint){
uint8 i=10;
uint16 j=20;
uint16 k=i+j;//i会隐式转换为uint16
return k;//k会隐式转换为uint
}
//强制转换发生截断
function f1() public pure returns(uint,uint16){
int8 y=-3;
uint x=uint(y);
uint32 a=12345678;
uint16 b=uint16(a);
return(x,b);
}
//2、delete重置变量
struct CustomType{
bool myBool;
uint myInt;
}
function testDel() public{
bool b=true;
delete b;//b=false
uint a=1;
delete a;//a=0
address addr=msg.sender;
delete addr;//addr=0x0
bytes memory bs="123";
delete bs; //bs=0x0
string memory str="123";
delete str; //str=""
uint[] memory arr=new uint[](7);
delete arr;//arr.length=0
CustomType memory ct=CustomType(true,100);
delete ct;//myBool=false,myInt=0
}
// delete mapping
mapping(address => uint) balances;
function delMapping() public{
// delete balances;
delete balances[msg.sender];
}
uint data;
uint[] dataArray;
function f2() public{
//值传递 ,互相不会影响
uint x=data;
delete x;
delete data;
//引用赋值
uint[] storage y=dataArray;
delete dataArray;
// delete y;报错 没有办法向一个引用类型的storage直接赋值
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhupeng911/solidity.git
git@gitee.com:zhupeng911/solidity.git
zhupeng911
solidity
solidity
master

搜索帮助