CryptoZombiesで学んだSolidityの基本
関数定義にpublic
をつけるとコントラクトの外から呼べる
private
はコントラクト内からしか呼べない
配列の定義は馴染みがないのでなれるまで戸惑いそう
uint[] uint;
四則演算はとくに戸惑いはない
べき乗は ^
ではなく**
addressデータ型はアカウントとコントラクトのアドレスを保持できる
Eth送信の宛先などに使われる
mappingは連想配列
mapping(address => uint) public account_id;
uint id = account_id[account_address];
のようにaddressを添え字にしたuintの配列などが作れる
msg.sender:トランザクションを送信したaddress
msg.value:トランザクションに載せられたEth
のようにトランザクションの値を参照できる
コントラクトは is
を使って継承できる
contract sub is super {
...
}
関数にprivate修飾子をつけると、継承先のコントラクトからも呼べない
外からは呼べないが、継承先のコントラクトから呼べるようにするにはinternal
修飾子をつける
C++のprotected
修飾子のようなもの?
ちなみにexternal
修飾子もあり、つけると外からしか呼べなくなる
関数は複数の値を返せる
Interface
を使って誰かの作ったコントラクトを参照できるようになる
CryptoKittyをゾンビのエサにできるとかおもしろい