Ethereum Solidity ノウハウ


Solidity ポイント抜粋 (from クリプトゾンビ)

 お作法

注:グローバル変数と区別をつけるために、関数パラメーター変数名はアンダースコア(_)をつけるのが通例(必須ではありません)です。このチュートリアルでは通例に従います。

構造体配列と配列

sample
struct Person {
  uint age;
  string name;
}
Person[] public people;

// 新しいPersonを作る:
Person satoshi = Person(172, "Satoshi");

// それを配列に格納する:
people.push(satoshi);

// こうやると一気にできる
people.push(Person(16, "Vitalik"));

// 通常の配列へのPUSH
uint[] numbers;
numbers.push(5);
numbers.push(10);
numbers.push(15);
// 数字は [5, 10, 15]

配列返却する時

sample
contract EtherTest{

    // 配列宣言して、登録があるたびにPUSHして、増やしていく。eth_sendtransactionPUSHしていくイメージ
    // ポイントviewするときの通信経路。マイニングに関係がないことを明確に
    string[] Stations;

    // フォームから値を取得してPUSHする関数
    function StationRecord(string _station) public{
      Stations.push(_station);
    }

    // 配列の長さを返却して、javascript側で、インクリメントしないとダメ?っぽいのでそうしてみる
    function StationLeng() public view returns (uint32){
      return uint32(Stations.length);
    }

    function StationDisplay(uint32 _number) public view returns(string){
      return Stations[_number];
    }
}