Solidity基础(7)-- 杂项补充

1.mapping

一种键值对的映射关系存储结构
语法:mapping(_Key => _Value),键值对类型,键是唯一的,其赋值方式为:map[a]=test; 意思是键为a,值为test
注:
1.键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。
2.在映射表里没有长度,键集合,值集合这样的概念,同时映射并没有做迭代的方法,可以自行实现:https://github.com/ethereum/dapp-bin/blob/master/library/iterable_mapping.sol 这是git上的一个实现方法

2.控制结构

不支持switch和goto,支持if,else,while,do,for,break,continue,return,?:。
条件判断中的括号不可省略,但在单行语句中的大括号可以省略。
需要注意的是,这里没有像C语言,和javascript里的非Boolean类型的自动转换,比如if(1){…}在Solidity中是无效的。

3.delete

用于将某个变量重置为初始值。对于整数,运算符的效果等同于a = 0。而对于定长数组,则是把数组中的每个元素置为初始值,变长数组则是将长度置为0。对于结构体,也是类似,是将所有的成员均重置为初始值。

pragma solidity ^0.4.0;
contract A {
    uint data;
    function change(uint  i) {
        data = i;
    }

    function getdata() constant returns (uint  a){
        delete data;
        return  data;
    }
}

4.抽象

抽象函数是没有函数体的的函数。如下:

pragma solidity ^0.4.0;
contract Feline {
    function utterance() returns (bytes32);
}

猜你喜欢

转载自blog.csdn.net/qq_32090861/article/details/80937424