初心者文系主婦がブロックチェーンを学ぶブログ

IT革命のビッグウェーブに乗り遅れた主婦が、ブロックチェーン革命の波にのるべく、ブロックチェーン技術を学ぶブログです。

【CryptZombies】レッスン1チャプター9:Private / Public関数

Solidityでは関数はデフォルトでpublicになっています。

要するに、誰でも(別のコントラクトからでも)自身のコントラクトの関数を呼び出して、実行できるということです。

これでは、攻撃に対してコントラクトが脆弱になることになります。

なので、自分が使う関数はデフォルトでprivateにして、公開しても構わない関数だけをpublicに設定するのだと、心がけが必要です。

 

ptivate関数の宣言方法

uint[] numbers;

function _addToArray(uint _number) private {
  numbers.push(_number);
}

このように書くと、この関数はコントラクト内の他の関数からだけ呼び出して、numbers配列に格納できます。

ご覧の通り、関数名の後にprivateとつけるだけです。簡単!

関数のパラメータと同様に、private関数はアンダースコア(_)で始めるのが通例です。

 

テストの実行

①private関数になるように、createZombieを編集せよ。名付けの通例を忘れるなよ!

private関数にするためには、関数名の後にprivateとつけるだけでOKです。

f:id:nomadomama:20181114161515p:plain

ただし、名づけの通例として、private関数はアンダースコア(_)で始めることになるので、以下のようになります。

f:id:nomadomama:20181114161646p:plain

 

お疲れさまでした!

 

<参考>

CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network