前のパートに戻る 完了して次のパートへ  

  1-3:電卓を作ってみよう

1.3 電卓を作ってみよう


ここでは四則演算するスマートコントラクトを作ります。繰返しforと条件分岐ifも使ってみましょう。

① スマートコントラクトを宣言する

calculatorという名前のスマートコントラクトを宣言します。

② 変数の宣言

int型の変数を宣言します。public変数は誰でも中身を取得可能な状態でブロックチェーンに記録されます。private変数はコントラクトの外部から直接参照できません。値の取得には後ほどご説明するゲッターが必要になります。 なお,スマートコントラクトでは変数のことをステートと呼びます。ステートのアクセス修飾子は以下の4つがあります。

・public
 コントラクトの内部,外部から参照可能
・private
 コントラクトの内部からのみ参照可能
・external
 コントラクトの外部からのみ参照可能
・internal
 コントラクトとその子コントラクトからのみ参照可能

③ 2数の足し算を行う関数

xyを足してwa(和)に代入する関数を定義しています。publicという修飾子を設定した関数は,スマートコントラクトの外部から呼出し可能な状態になります。

④ 2数の引き算を行う関数とif文

 xyの大小を比較して,大きい数から小さい数を引く関数を定義しています。Solidityでは他の言語と同様にif文が記述できます。

⑤2数の掛け算を行う関数とfor文


 xyの積を求める関数です。今回はfor文を示すためにこのような書き方をしていますが,2数の積は以下で求めることができます。

⑥ 2数の割り算を行う関数と変数shou(商)のゲッター

xyで割った商は変数shouに代入されますが,shouprivate変数なので外部からアクセスできません。そこでget_shouというゲッターを介してその値を取得します。viewを付与するとコール専用関数(変数の変更を伴わない関数)となります。また,returnsで戻り値の型を宣言しています。

1.1と同じやり方で電卓スマートコントラクトをデプロイし,動作を確認してみて下さい。

議論
0 質問