pragma solidity ^0.4.0;
contract structTests{
//结构体定义
struct Student{
uint grade;
string name;
mapping(uint => string) map;//很特殊的类型,不会报错
}
//结构体定义
struct Student2{
uint grade;
string name;
//Student2 stu; 结构体内部不可以包含自己本身、但是可以是动态的长度的数组、也可以是映射
Student2[] stu;
mapping(uint=>Student2) csb;
}
//结构体初始化第一种方式
function inIt1() public returns(uint,string){
//在函数体内部的struct默认的是strorage的类型
Student memory s = Student(100,"chenshimei");
//在初始化结构体的时候、忽略掉mappIng类型
//s.map[0] = "csb";//会报错这行代码
return(s.grade,s.name);
}
//初始化第二种方式
function inIt2() public returns(uint,string){
Student memory s = Student({grade:100,name:"chenshimei"});
return(s.grade,s.name);
}
}