ethereum(以太坊)(十四)--Delete

pragma solidity ^0.4.10;

contract Delete{
    /*
        delete可用于任何变量(除mapping),将其设置成默认值
        bytes/string:删除所有元素,其长度变为0
        bytes32:重置所有索引的值
        mapping:什么都不会发生
        mapping(key=>value)中的key:删除与该键相关的值
    */
    string public str1 =‘nihao‘;

    function deletstr() public{
        delete str1;
    }
    function setstr() public returns(string){
        return str1=‘NIHAO‘;
    }

    uint[5] public b1=[uint(10),2,3,4,5];

    uint[] public b2=new uint[](10);

    function initAccary() public{
        for(uint i;i<10;i++){
            b2[i] = i;
        }
    }

    function deleStaticAccary() public{
        delete b1;
    }
    function deleDhcpAccary() public{
        delete b2;
    }
    function getlength() public view returns(uint,uint){
        return (b1.length,b2.length);
    }

    mapping(uint=>bool) public m1;

    function f1() public{
        m1[1]=true;
        m1[2]=false;
    }

    function deleM(uint a) public{
        delete m1[a];
    }

    struct Person{
        string name;
        mapping(string =>uint) NameSore;
    }

    //Person p2=Person(‘duke‘,([‘duke‘][90]));
    Person public p1;
    function InitP1() public{
        p1.name=‘duke‘;
        p1.NameSore[‘duke‘]=90;
    }

    function checkP1() public view returns(string,uint){
        return(p1.name,p1.NameSore[‘duke‘]);
    }
    function delP1() public{
        delete p1;
    }
}

原文地址:https://www.cnblogs.com/eilinge/p/10084255.html

时间: 12-07

ethereum(以太坊)(十四)--Delete的相关文章

区块链入门(2):搭建以太坊私有链(private network of ethereum),以及挖矿的操作..

在做一些测试工作的时候, 为了方便控制以及更快的进入真正的测试工作,可能需要搭建一个私有的以太坊网络. 而以太坊节点之间能够互相链接需要满足1)相同的协议版本2)相同的networkid,所以搭建私有网络最方便的方法就是通过geth命令中的--networkid选项,设置一个与主网不同的networkid(主网的networkid为1),这也是官方推荐的方法. 下面开始建立私有以太坊网络: mkdir private-geth cd private-geth 建立创世纪区块文件,是一个json格

搭建基于以太坊的私有链环境

零.概述 版本号:Ubuntu-16.04 ethereum-1.6.0-stable go - 1.7.4 一.Ubuntu下安装geth sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum 二.创建初始化文件 vim genesis.json {    

c++第十四章-(类型强转换)

类型强转换有2种. class Company { public: Company(std::string theName,std::string theProduct); virtual void printInfo(); protected: std::string name; std::string product; }; Company::Company(std::string theName,std::string theProduct) { this->name = theName;

我的MYSQL学习心得(十四)

我的MYSQL学习心得(十四) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 我的MYSQL学习心得(九) 我的MYSQL学习心得(十) 我的MYSQL学习心得(十一) 我的MYSQL学习心得(十二) 我的MYSQL学习心得(十三) 这一篇<我的MYSQL学习心得(十四)>将会讲解MYSQL的备份和恢复

NHibernate 存储过程 第十四篇

NHibernate 存储过程 第十四篇 NHibernate也是能够操作存储过程的,不过第一次配置可能会碰到很多错误. 一.删除 首先,我们新建一个存储过程如下: CREATE PROC DeletePerson @Id int AS DELETE FROM Person WHERE PersonId = @Id; 修改映射文件,添加删除对象的存储过程: <?xml version="1.0" encoding="utf-8" ?> <hiber

Java进阶(三十四)Integer与int的种种比较你知道多少?

Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: package

centos LNMP第二部分nginx、php配置 第二十四节课

centos  LNMP第二部分nginx.php配置  第二十四节课 上半节课 下半节课 f

从零开始学android&lt;android事件的处理方式.二十四.&gt;

在android中一共有 多种事件,每种事件都有自己相对应的处理机制 如以下几种 1 单击事件 View.OnClickListener public abstract void onClick (View v) 单击组件时触发 2 单击事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 长按组件时触发 3 键盘事件 View.OnKeyListener public abstract boolean

苹果新的编程语言 Swift 语言进阶(十四)--扩展

Swift语言的扩展是为一个已经存在的类.结构.枚举类型添加新功能的一种方式,包括为不能存取源代码的那些已经存在的类型添加功能.        扩展类似于Objective-C语言中的类别,与类别不同的是Swift语言的扩展没有名字.        扩展能够为已存在类型:     1)增加计算属性和计算静态属性:     2)定义新的实例方法和类型方法:     3)提... 请转移到此位置继续阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(十四)--扩展 苹果新的编程语言 Swift 语

以太坊(三)

总览 以太坊虚拟机(EVM)是以太坊中智能合约的运行环境.它不仅被沙箱封装起来,事实上它被完全隔离,也就是说运行在EVM内部的代码不能接触到网络.文件系统或者其它进程.甚至智能合约与其它智能合约只有有限的接触. 账户 以太坊中有两类账户,它们共用同一个地址空间.外部账户,该类账户被公钥-私钥对控制(人类).合约账户,该类账户被存储在账户中的代码控制. 外部账户的地址是由公钥决定的,合约账户的地址是在创建改合约时确定的(这个地址由合约创建者的地址和该地址发出过的交易数量计算得到,地址发出过的交易数