Solidity
>Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on Ethereum.
ぼくは「書き味が Java に似ている」と感じる
class
の代わりに contract
があるような感じ、クラスではなくコントラクトを作って組み合わせていく
クラスの継承のような雰囲気で、コントラクトを拡張する機構がある
uint
や
string
と並んで
address
という型があるのは
ブロックチェーンの世界という感じでおもしろい
計算量やガス代を常に意識しながらコードを書くことになるのがおもしろい
関数の modifier
の仕組みは、Rails の before_action
みたいでおもしろい
引数もやりとりできて便利
関数の可視性修飾詞
private
internal
は Ruby でいう protected
みたいな位置づけ
external
コントラクトの外からだけ呼び出せる
public
どこからでも呼び出せる
関数の状態修飾子
pure
view
関数の payable
修飾子
ETH を受け取れるようにするやつ
ブロックチェーンネットワーク上にデプロイされた他のコントラクトを参照できる
event
って概念で「こういうことが起きたよ」を Publish/Subscribe できる
Ethereum Natural Language Specification Format
Java でいう Javadoc みたいなやつ