基于以太坊的智能合约开发教程Solidity mapping在结构体当中的使用
pragma solidity ^0.4.0;
contract mappingTest{
struct Student {
uint grade;
string name;
mapping (uint => string) map;
}
// 默认为storage类型,只能够用storage类型来操作我们的结构体中的mapping类型
Student s;
// memory的对象不能够直接的操作struct结构体当中的mapping
function test()public view returns(uint,string,string){
// 在初始化结构体的时候,会忽略这样的mapping类型
Student memory stu = Student(99,"zhangsan");
//把内存当中的stu对象复制给s这样的storage对象,只能通过storage对象来操作结构体中的mapping对象
s = stu;
s.map[0] = "helloworld";
return (s.grade,s.name,s.map[0]); // 99,zhangsan,helloworld
}
}
|