LoginSignup
4
1

More than 3 years have passed since last update.

【Solidity】関数修飾子(view、pure)の違い

Last updated at Posted at 2020-06-26

Solidityの関数にはview、及びpureの修飾子を付けることができる。

どちらにも共通しているのはstorage(ブロックチェーン)にデータを書き込むことができないということ。
では何が違うのか。それぞれの違いを忘れてしまうことがあるため、ここにまとめておく。

view修飾子

function hello() public view returns (string) {

storage(ブロックチェーン)の値を読み込むことは可能。

storage(ブロックチェーン)に値を書き込むことは不可能。

データの読み取り専用だと思えばOK。

view修飾子が付いた関数は外部から実行される場合はgasを消費しない。
同じコントラクト内のviewが付いてない関数から実行される場合はgasを消費する。

pure修飾子

function _addition(uint a, uint b) private pure returns (uint) {
    return a + b;
}

storage(ブロックチェーン)の値を読み込むことも書き込むことも不可能。

引数で受け取った値のみ使用可能。

よって、pure修飾子が付いた関数も外部からの呼び出しではgasを消費しない。(同じコントラクト内からの呼び出しでは消費する)

まとめ

Solidityでのプログラミングではgasの消費をなるべく抑えるようにする必要があるため、この辺りの知識は必須だと思う。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1