2017-01-27 7 views

答えて

2

をソリディティは、既存の型から新しい型を作成し、構造体と呼ばれるものをサポートしています。これらは内部的に関数間で渡すことができますが、契約と外部との間にはまだありません。

はちょうどあなたがマッピング(ハッシュテーブル)で構造体を格納することができ、ヤコブは言ったことへの追加:

mapping(address => MyStruct) structsInMap; 

または配列内:ここ

MyStruct[] structsInList; 

は、周りの値を渡し少し例を示しますABIと互換性のある固定サイズのルールを観察する。

contract StructExample { 

    struct MyStruct { 
     bool isMyStruct; 
     uint amount; 
     address[3] addressList; 
     bytes32 name; 
    } 

    // storage instance of MyStruct 
    MyStruct myStruct; 

    function StructExample(
     uint amount, 
     address address1, 
     address address2, 
     address address3, 
     bytes32 name) 
    { 
     myStruct.isMyStruct = true; 
     myStruct.amount = amount; 
     myStruct.addressList = [address1, address2, address3]; 
     myStruct.name = name; 
    } 

    function getMyStruct() 
     constant 
     returns(
      bool isMyStruct, 
      uint amount, 
      address[3] addressList, 
      bytes32 name) 
    { 
     return (
      myStruct.isMyStruct, 
      myStruct.amount, 
      myStruct.addressList, 
      myStruct.name); 
    } 
} 

コンストラクタが設定した後に戻ってくる構造体valを示すブラウザソリディティ。

enter image description here

はそれがお役に立てば幸いです。