🧟

【CryptoZombies】チャプター3:状態変数とuint

2025/01/09に公開

Solidityの入門はCryptoZombiesがいいらしいので、挑戦の記録。
チャプター1と2は前の記事へ

チャプター3:状態変数と整数

状態変数

復習だが、コントラクトは変数やら関数やらをひとまとめにまとめるものだった。オブジェクト指向のプログラミング言語でいうclassに似ている。
状態変数は、このくくり(コントラクト)の中身と言える。
ブロックチェーンに記載されるので、永遠に保存される。

符号なし整数:uint

さっそく状態変数を書いていく。
今回は最初のステップとして、変数(状態変数)の中に数字を入れることを考える。
数字、と一言で言っても色んな種類があるのはご存じだろうか。

  • 自然数:0からはじまって、小数点を取らない値(1,2,3…)
  • 整数:小数点を取らない値(…,-2,-1,0,1,2,…)
  • 実数:小数点を含む値(3.1,2.55…)
    もしかしたら他にもあるかも。
    とにかく、数字には種類がある。そしてSolidityでは、どの数字が入っているのか宣言する必要がある。
    今回は一番簡単な自然数を扱う。
    変数Aに自然数1を格納したい時はuint A = 1;と記述する。

uint 変数名; だけ記述すると、初期値として0が自動的に入るらしい。

練習問題

すでに記載されているが、コードの1行目はコンパイラのバージョンの宣言だった。

pragma solidity ^0.4.09;

次に、記述する空のコントラクトを設置する.
今回のコントラクト名はZombieFactoryとする

pragma solidity ^0.4.09;

contract ZombieFactory {

}

ここから本題。設置したZombieFactoryの中に、dnaDigitsという変数を定義したい。
dnaDigitsは、負の値ではない数値であり、今回は16と指定したい。

pragma solidity ^0.4.19;

contract ZombieFactory {

    // ここにdnaDigitsを定義するのだ
    uint dnaDigits = 16;

}

ZombieFactoryの中に定義するので、インデントの位置に注意。

Discussion