区块链:元组 (Tuples)

什么是元组

普通的数组返回方式

pragma solidity ^0.4.4;

contract C{

   uint[] data = [1,2,3,4,5];
   function f() constant returns (uint[]){
       return data;
   }
}

普通的字典返回value值方式,但是如何返回一个字典样式的数据呢?

pragma solidity ^0.4.4;

contract C{

   mapping (uint => string) public students;
   function C(){
       students[0] = "wt";
       students[1] = "wtTwelveRngs";
   }

   function students(uint id) constant returns (string){
       return students[id];
   }
}

使用元组的方式

pragma solidity ^0.4.4;

contract C{

   mapping (uint => string) students;
   function C(){
       students[0] = "wt";
       students[1] = "wtTwelveRngs";
   }

   function students1() constant returns (string name0,string name1){
       name0 = students[0];
       name1 = students[1];
   }
   //students1等价于students2
   function students2() constant returns (string name0,string name1){
       name0 = students[0];
       name1 = students[1];

       return (name0,name1);
   }

   //元组,直接返回多种数据类型
   function f() constant returns (uint,bool,string){

       return (101,true,"wt");
   }
}
元组的使用

在声明方法时,如果写了确定的返回值时,可以省略return

pragma solidity ^0.4.4;

contract Simple{

   function arithmentics(uint _a,uint _b)constant returns(uint,uint){
       return (_a +_b,_a*_b);
   }

   function arithmentics1(uint _a,uint _b)constant returns(uint o_sum,uint o_product){
       o_sum = _a + _b;
       o_product = _a + _b;
   }
}
pragma solidity ^0.4.4;

contract Simple{

   function f() constant returns(uint,bool,uint){
       return(7,true,2);
   }

   function g1() constant returns(uint,bool,uint){
       var (x,b,y) = f();
       return(x,b,y);
   }

   function g2() constant returns(uint,uint){
       var (x,b,y) = f();
       (x,y) = (2,7);
       return (x,y);
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值